Resolution: No Longer Reproducible
Affects Version/s: 6.0.6 GA
Fix Version/s: 6.2.0 CE M4
Environment:I work with liferay 6.0.5 bundle including tomcat 6.0.26 on windows 7
Similar Issues:Show 5 results
LPS-9619 Allow plugins to easily expose Service Builder remote services via SOAP LPS-11748 Executing a new webservice LPS-204 sample-portal-client-portlet can't use SOAP Web Services - no SOAP client can't use SOAP Web Services LPS-9636 Allow plugins to easily expose Service Builder remote services via JSON LPS-56486 Expose services to manage comments
I have developped a portlet with service builder.
In this portlet i have some remote services called via SOAP through AXIS by another portlets. This works fine.
But now this portlet has to call a remote service exposed via SOAP in an other portlet. To do this i have included in my libs the client generated by the ant target "build-client" from the portlet that contains the remote classes. And i have declared the following jars : axis.jar, jaxrpc.jar, commons-discovery.jar, wsdl4j.jar, commons-logging.jar in the section "portal-dependency-jars" of "liferay-plugin-package.properties" in my portlet.
When i build the project, all works fine but when the portlet is loaded by tomcat, the deployement crashes for the following reason :
org.apache.axis.deployment.wsdd.WSDDException: java.lang.ClassCastException: org.apache.axis.encoding.ser.BeanSerializerFactory cannot be cast to org.apache.axis.encoding.SerializerFactory
If i remove the axis.jar this error disappear but i can't call the remote service via the client because the class org.apache.axis.client.Service is not found (ClassNotFoundException)
If i remove the following line in my server-config.wsdd the first ClassCastException disappear but my remote services would not work :
<typeMapping xmlns:ns="http://dto.opmarketing.com" qname="ns:OpSoap" type="java:com.opmarketing.dto.OpSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanSerializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"></typeMapping>
In conclusion, actually a portlet can not expose remote services with a typeMapping serializer org.apache.axis.encoding.ser.BeanSerializerFactory and call remote services of an other portlet via a client which necesite to include axis.jar and causes the ClassCatException.