weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler cannot be cast to org.apache.cxf.frontend.ClientProxy
After lots of googling, I finally found the problem. The CXF libraries used in the web service stubs are being overridden by Weblogic AS which causes the problem. The solution is to add the package preference setting in weblogic.xml file in your application (if you don't have one create it using File->New->Weblogic Deployment Descriptor). So your weblogic.xml should look something like:
<?xml version = '1.0' encoding = 'windows-1252'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd">
<context-root>yourapp</context-root>
<container-descriptor>
<prefer-application-packages>
<package-name>org.apache.cxf.binding.soap.saaj.*</package-name>
<package-name>org.apache.cxf.endpoint.*</package-name>
<package-name>org.apache.cxf.frontend.*</package-name>
<package-name>org.apache.cxf.transport.http.*</package-name>
<package-name>org.apache.cxf.interceptor.*</package-name>
<package-name>org.apache.cxf.transports.http.configuration.*</package-name>
</prefer-application-packages>
</container-descriptor>
</weblogic-web-app>
This should resolve the library conflict. If you get an error like this:
This class does not support SAAJ 1.1 weblogicThe Reason for the problem is Weblogic’s default SAAJ implementation, so you need to override the properties to use a better implementation weblogic.xml.saaj package. You can do that by adding the following parameters to your Weblogic startup script:
JAVA_OPTIONS= %JAVA_OPTIONS% -Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl -Djavax.xml.soap.SOAPConnectionFactory=weblogic.wsee.saaj.SOAPConnectionFactoryImpl