Sunday, February 13, 2011

java.io.IOException: java.lang.IllegalArgumentException: object is not an instance of declaring class at org.apache.axis.encoding.ser.BeanSerializer

If you are developing a Web Service with Apache Axis and in the client occurs the error "premature end of file" and in the server occurs the Exception bellow:

java.io.IOException: java.lang.IllegalArgumentException: object is not an instance of declaring class

at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:275)

at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)

at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)

at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:734)

at org.apache.axis.encoding.ser.ArraySerializer.serialize(ArraySerializer.java:425)

at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)

at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)

at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:801)

at org.apache.axis.message.RPCParam.serialize(RPCParam.java:208)

at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:433)

at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)

at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)

at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478)

at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)

at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)

at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)

at org.apache.axis.Message.writeTo(Message.java:539)

at org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:902)

at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:777)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)

at java.lang.Thread.run(Thread.java:619)



To resolve this problem you must verify the file server-config.wsdd.
In the server-config.wsdd you must search for the mapping of all classes which your Web Service uses.
The BeanSerializer uses this mapping to deserialize all classes.

No comments:

Post a Comment