Serializer Exception in the reponse(SimpleSerializer failed
akshayapandey Feb 23, 2006 11:53 PMhi
I am using the following wsdl. I pass the reply object across to server using wrapped inside replyHolder.The request is successfully received by the Web Service and processed correctly .However, when i receive it on the client side, I get the Serialization exception.
Also , I used tcpmon to view the response i am getting from the server.
It shows reply object as <arg1> instead of .So , it seems it unable to determine/recognize the reply object correctly.
I have tried it in jboss4.0.3.SP1 and jboss 4.0.4.SP1.
My wsdl is .
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://www.nextone.com/ivms/wsdl" xmlns:ns="http://www.nextone.com/ivms/schema/config" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.nextone.com/ivms/wsdl" name="NexToneGenerateRoutes">
<wsdl:types>
<xs:schema targetNamespace="http://www.nextone.com/ivms/schema/config" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="generateroutes.xsd"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="generateRoutesRequest">
<wsdl:part name="generateRoutesRequest" type="ns:editConfig"/>
</wsdl:message>
<wsdl:message name="generateRoutesResponse">
<wsdl:part name="generateRoutesReply" type="ns:reply"/>
</wsdl:message>
<wsdl:message name="exportRoutesRequest">
<wsdl:part name="exportRoutesRequest" type="ns:getConfig"/>
<wsdl:part name="exportRoutesReply" type="ns:reply"/>
</wsdl:message>
<wsdl:message name="exportRoutesResponse">
<wsdl:part name="exportRoutesReply" type="ns:reply"/>
<wsdl:part name="exportedRoutes" type="xs:string"/>
</wsdl:message>
<wsdl:message name="generateRouteWithPriorityRequest">
<wsdl:part name="generateRouteWithPriorityRequest" type="ns:editConfig"/>
<wsdl:part name="routeToImport" type="xs:string"/>
</wsdl:message>
<wsdl:message name="generateRouteWithPriorityResponse">
<wsdl:part name="generateRouteWithPriorityReply" type="ns:reply"/>
</wsdl:message>
<wsdl:portType name="generateRoutePortType">
<wsdl:operation name="generateRoutes">
<wsdl:input name="generateRoutesRequestMessage" message="generateRoutesRequest"/>
<wsdl:output name="generateRoutesResponseMessage" message="generateRoutesResponse"/>
</wsdl:operation>
<wsdl:operation name="exportRoutes" parameterOrder="exportRoutesRequest exportRoutesReply">
<wsdl:input name="exportRoutesRequestMessage" message="exportRoutesRequest"/>
<wsdl:output name="exportRoutesResponseMessage" message="exportRoutesResponse"/>
</wsdl:operation>
<wsdl:operation name="generateRouteWithPriority">
<wsdl:input name="generateRouteWithPriorityRequestMessage" message="generateRouteWithPriorityRequest"/>
<wsdl:output name="generateRouteWithPriorityResponseMessage" message="generateRouteWithPriorityResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="generateRouteBinding" type="generateRoutePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="generateRoutes">
<soap:operation/>
<wsdl:input>
<soap:body parts="generateRoutesRequest" use="literal" namespace="http://www.nextone.com/ivms/wsdl"/>
</wsdl:input>
<wsdl:output>
<soap:body parts="generateRoutesReply" use="literal" namespace="http://www.nextone.com/ivms/wsdl"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="exportRoutes">
<soap:operation/>
<wsdl:input>
<soap:body use="literal" namespace="http://www.nextone.com/ivms/wsdl"/>
</wsdl:input>
<wsdl:output>
<mime:multipartRelated>
<mime:part>
<mime:content part="exportedRoutes" type="text/xml"/>
</mime:part>
<mime:part>
<soap:body parts="exportRoutesReply" use="literal" namespace="http://www.nextone.com/ivms/wsdl"/>
</mime:part>
</mime:multipartRelated>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="generateRouteWithPriority">
<soap:operation soapAction="generateRouteWithPriority" style="rpc"/>
<wsdl:input>
<mime:multipartRelated>
<mime:part>
<soap:body parts="generateRouteWithPriorityRequest" use="literal" namespace="http://www.nextone.com/ivms/wsdl"/>
</mime:part>
<mime:part>
<mime:content part="routeToImport" type="text/xml"/>
</mime:part>
</mime:multipartRelated>
</wsdl:input>
<wsdl:output>
<soap:body parts="generateRouteWithPriorityReply" use="literal" namespace="http://www.nextone.com/ivms/wsdl"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="nextoneImportLCR">
<wsdl:port name="generateRoutePort" binding="generateRouteBinding">
<soap:address location="https://localhost:8443/ivms/NextoneGenerateRoute"/>
</wsdl:port>
</wsdl:service>
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Copyright 2005, NexTone Communications</wsdl:documentation>
</wsdl:definitions>
Also the schema definition i am using is
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.nextone.com/ivms/schema/config" xmlns:nsc="http://www.nextone.com/ivms/schema/common" targetNamespace="http://www.nextone.com/ivms/schema/config" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.nextone.com/ivms/schema/common" schemaLocation="common.xsd"/>
<xs:complexType name="configType">
<xs:sequence>
<xs:element name="credential" type="nsc:credentialsType"/>
<xs:element name="generateRouteConfig" type="generateRouteConfigType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="reply">
<xs:sequence>
<xs:element name="ok" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="error" type="nsc:errorType" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="editConfig">
<xs:sequence>
<xs:element name="config" type="configType"/>
<xs:element name="errorOption" type="nsc:errorOptionType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getConfig">
<xs:sequence>
<xs:element name="credential" type="nsc:credentialsType"/>
<xs:element name="getRouteConfig" type="getRouteFilterType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="generateRouteConfigType">
<xs:sequence>
<xs:element name="deviceName" type="xs:string" minOccurs="0"/>
<xs:element name="partition" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="applyRoutesToDevice" type="xs:boolean" use="optional" default="false"/>
<xs:attribute name="stickyRoute" type="xs:boolean" use="optional" default="false"/>
</xs:complexType>
<xs:complexType name="getRouteFilterType">
<xs:sequence>
<xs:element name="carrier" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="partition" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="region" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
I have specified the following serializers:
QName qn = new QName( "http://www.nextone.com/ivms/schema/common", "ErrorSeverity","ns1" );
call.registerTypeMapping(ErrorSeverity.class,qn,
org.jboss.axis.encoding.ser.EnumSerializerFactory.class,
org.jboss.axis.encoding.ser.EnumDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/common", "ErrorTag","ns1" );
call.registerTypeMapping(ErrorTag.class,qn,
org.jboss.axis.encoding.ser.EnumSerializerFactory.class,
org.jboss.axis.encoding.ser.EnumDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/common", "ErrorType","ns1" );
call.registerTypeMapping(ErrorType_Enumeration.class,qn,
org.jboss.axis.encoding.ser.EnumSerializerFactory.class,
org.jboss.axis.encoding.ser.EnumDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/common", "credentialsType","ns1" );
call.registerTypeMapping(CredentialsType.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/common", "dataErrorInfo","ns1" );
call.registerTypeMapping(DataErrorInfo.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/common", "errorInfoType","ns1" );
call.registerTypeMapping(ErrorInfoType.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/common", "errorOptionType","ns1" );
call.registerTypeMapping(ErrorOptionType.class,qn,
org.jboss.axis.encoding.ser.EnumSerializerFactory.class,
org.jboss.axis.encoding.ser.EnumDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/common", "errorType","ns1" );
call.registerTypeMapping(ErrorType_Type.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/config", "configType","ns1" );
call.registerTypeMapping(ConfigType.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/config", "getConfig","ns1" );
call.registerTypeMapping(GetConfig.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/config", "generateRouteConfigType","ns1" );
call.registerTypeMapping(GenerateRouteConfigType.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/config", "getRouteFilterType","ns1" );
call.registerTypeMapping(GetRouteFilterType.class,qn,
org.jboss.axis.encoding.ser.EnumSerializerFactory.class,
org.jboss.axis.encoding.ser.EnumDeserializerFactory.class);
qn = new QName( "http://www.nextone.com/ivms/schema/config", "reply","ns1" );
call.registerTypeMapping(Reply.class,qn,
org.jboss.webservice.encoding.ser.MetaDataBeanSerializerFactory.class,
org.jboss.webservice.encoding.ser.MetaDataBeanDeserializerFactory.class);