hey folks, I think I know what the problem is. Its the URLClassLoader. My service method does the following
Class.forName("...ApiResponse", urlClassLoader); where urlClassLoader has been instantiated with a set of URL's to look for the classes. The service method uses the above to create the response and send the response out. That seems to be the problem. Once I got rid of the urlClassLoader and simply did a new ApiResponse(), everything worked fine. Is there a dependency for the type mapping on the class loader? Ram hey, I guess this is the most looked for topic in the list. I 've gone through all the posting and I still am not able to solve this issue. Am deploying my service in Tomcat. My wsdd looks like this <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java=" http://xml.apache.org/axis/wsdd/providers/java"> <service name="AdminService" provider="java:MSG"> <parameter name="className" value="org.apache.axis.utils.Admin"/> <parameter name="allowedMethods" value="*"/> <parameter name="enableRemoteAdmin" value="false"/> </service> <!-- SOAP Monitoring service --> <handler name="soapmonitor" type=" java:org.apache.axis.handlers.SOAPMonitorHandler"> <parameter name="wsdlURL" value="/api/SOAPMonitorService-impl.wsdl"/> <parameter name="namespace" value=" http://tempuri.org/wsdl/2001/12/SOAPMonitorService-impl.wsdl"/> <parameter name="serviceName" value="SOAPMonitorService"/> <parameter name="portName" value="8888"/> </handler> <service name="SOAPMonitorService" provider="java:RPC"> <parameter name="allowedMethods" value="publishMessage"/> <parameter name="className" value="org.apache.axis.monitor.SOAPMonitorService"/> <parameter name="scope" value="Application"/> </service> <!-- END SOAP Monitoring service --> <service name="urn:API_MSGService" provider="java:MSG"> <parameter name="className" value="com.api.common.services.MessageServiceImpl"/> <parameter name="allowedMethods" value="corrRequest hierarchyBrowseRequest"/> </service> <service name="urn:API_RPCService" provider="java:RPC" use="encoded" style="rpc"> <requestFlow> <handler type="soapmonitor"/> </requestFlow> <responseFlow> <handler type="soapmonitor"/> </responseFlow> <parameter name="className" value="com.api.common.services.RPCServiceImpl"/> <parameter name="allowedMethods" value="corrRequest"/> <typeMapping encoding="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rpcNS="urn:API_RPCService" qname="rpcNS:apiResponse" languageSpecificType="java:com.databean.impl.ApiResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"/> <typeMapping encoding="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rpcNS="urn:API_RPCService" qname="rpcNS:apiResponseChoice" languageSpecificType="java:com.databean.impl.ApiResponseChoice" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"/> <typeMapping encoding="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rpcNS="urn:API_RPCService" qname="rpcNS:authentication" languageSpecificType="java:com.databean.impl.Authentication" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"/> <typeMapping encoding="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rpcNS="urn:API_RPCService" qname="rpcNS:breadcrumb" languageSpecificType="java:com.databean.impl.Breadcrumb" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"/> <typeMapping encoding="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rpcNS="urn:API_RPCService" qname="rpcNS:breadcrumbElem" languageSpecificType="java:com.databean.impl.BreadcrumbElem" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"/> </service> </deployment> My client does set the typeMapping in the call. The method on my service looks like this public Object corrRequest(CorrelationRequest req) The service gets called without any issues from the client. When my service returns I get a "No Serializer Found" exception for class ApiResponse (which is the object returned by the method). This is happening in the server side. Any ideas what could be going wrong? I should also mention that the databean.impl.* classes on the client and the service are being loaded through a URLClassLoader. Thanks Ram