I am getting deserialization error for my JAX-WS annotation based RPC Literal webservice which returns object.Help me on this error
Deserialization error::
deserialization error: unexpected XML reader state. expected: END but found: START: {java:rpclit}GroupName
at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.deserialize(LiteralObjectSerializerBase.java:128)
at com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.doDeserialize(LiteralResponseSerializer.java:270)
at com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.internalDeserialize(LiteralResponseSerializer.java:370)
at com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.deserialize(LiteralResponseSerializer.java:327)
at com.sun.xml.rpc.client.dii.CallInvokerImpl._readFirstBodyElement(CallInvokerImpl.java:350)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:228)
at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:103)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:486)
at rpc.literal.client.DIIClient_Object.main(DIIClient_Object.java:68)
CAUSE:
unexpected XML reader state. expected: END but found: START: {java:rpclit}GroupName
at com.sun.xml.rpc.streaming.XMLReaderUtil.verifyReaderState(XMLReaderUtil.java:51)
at com.sun.xml.rpc.encoding.literal.GenericLiteralObjectSerializer.doDeserialize(GenericLiteralObjectSerializer.java:436)
at com.sun.xml.rpc.encoding.literal.GenericLiteralObjectSerializer.doDeserialize(GenericLiteralObjectSerializer.java:237)
at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalDeserialize(LiteralObjectSerializerBase.java:216)
at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.deserialize(LiteralObjectSerializerBase.java:124)
at com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.doDeserialize(LiteralResponseSerializer.java:270)
at com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.internalDeserialize(LiteralResponseSerializer.java:370)
at com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.deserialize(LiteralResponseSerializer.java:327)
at com.sun.xml.rpc.client.dii.CallInvokerImpl._readFirstBodyElement(CallInvokerImpl.java:350)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:228)
at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:103)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:486)
at rpc.literal.client.DIIClient_Object.main(DIIClient_Object.java:68)
RPC Literal Service:
package rpclit;
import javax.jws.*;
import javax.jws.soap.SOAPBinding;
@WebService(serviceName="RPC_Literal_Service", targetNamespace="http://testAllServices.com/", name="RPC_Literal_ServicePortType", portName="RPC_Literal_ServicePort")
public class TestRPCLiteral {
@SOAPBinding(style=SOAPBinding.Style.RPC, use=SOAPBinding.Use.LITERAL)
@WebMethod(operationName="testObject")
@WebResult(name="responseObject",targetNamespace="http://testAllServices.com/")
public FinsGroupPolicy testObject( @WebParam(name="requestObject", mode=WebParam.Mode.IN, targetNamespace="http://testAllServices.com/") FinsGroupPolicy inFGP)
{
System.out.println("RPCLiteral Service: testObject called.....");
System.out.println("Policy Number: " + inFGP.getPolicyNumber() + ".....");
FinsGroupPolicy outFGP = new FinsGroupPolicy();
outFGP.setPolicyNumber(inFGP.getPolicyNumber());
outFGP.setGroupName("ICICI Group");
outFGP.setState("MH");
outFGP.setType("Fire");
return outFGP;
}
}
DII Client:
String endPoint = "http://localhost:7021/TestServiceTypes/TestRPCLiteral";
String targetNamespace = "http://testAllServices.com/";
FinsGroupPolicy inObject = new FinsGroupPolicy();
inObject.setPolicyNumber("16052");
FinsGroupPolicy outObject = new FinsGroupPolicy();
try
{
QName serviceName = new QName(targetNamespace, "RPC_Literal_Service");
QName portName = new QName(targetNamespace, "RPC_Literal_ServicePort");
QName operationName = new QName(targetNamespace,"testObject");
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(serviceName);
HandlerRegistry hr = service.getHandlerRegistry();
List handlerChain = new ArrayList();
HandlerInfo hi = new HandlerInfo();
hi.setHandlerClass(SoapHandler.class);
handlerChain.add(hi);
Call callService = service.createCall(portName, operationName);
callService.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
callService.setProperty(Call.SOAPACTION_URI_PROPERTY, "");
callService.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,"");
callService.setProperty(Call.OPERATION_STYLE_PROPERTY, "rpc");
QName rqObject = new QName(targetNamespace,"FinsGroupPolicy", "java:rpclit");
callService.addParameter("requestObject", rqObject, ParameterMode.IN);
QName rsObject = new QName(targetNamespace,"FinsGroupPolicy", "java:rpclit");
callService.addParameter("responseObject", rqObject, ParameterMode.OUT);
callService.setReturnType(rsObject,XMLType.class);
callService.setTargetEndpointAddress(endPoint);
Object [] inParameters = new Object[] {inObject};
outObject = (FinsGroupPolicy) callService.invoke(inParameters);
System.out.println(outObject.getGroupName());
}
catch(Exception e)
{
e.printStackTrace();
}
}
WSDL file:
<?xml version="1.0" encoding="UTF-8" ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-