| Author |
Java WebServices with Axis
|
Krishnan Raman
Greenhorn
Joined: Nov 25, 2008
Posts: 1
|
|
Hi There, I am using Axis 1.2 to implement Java web services. I have put a simple sample and it works with primitive data types in JBOSS. Now I want to return a collection like ArrayList from a Web Service. When I try this, it shows me the following error. {http://xml.apache.org/axis/}stackTrace: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) Can anyone provide a sample on how to return a collection from a Web Service after serializing it. Thanks Krishnan
|
 |
William Brogden
Author and all-around good cowpoke
Rancher
Joined: Mar 22, 2000
Posts: 12267
|
|
The answer is simple - NEVER try to return a collection, instead return an array. All collections have simple and fast methods to turn the contents into an array. Think about it - does the client really need the functionality of a collection? Almost certainly not, and if they do there are always simple array to collection constructors. Another point - what would a non-Java client do with a collection if you could get it serialized? Bill
|
Java Resources at www.wbrogden.com
|
 |
Peer Reynders
Bartender
Joined: Aug 19, 2005
Posts: 2906
|
|
See also Axis2 support for collections Implementing Collections In WebServices
|
"Don't succumb to the false authority of a tool or model. There is no substitute for thinking."
Andy Hunt, Pragmatic Thinking & Learning: Refactor Your Wetware p.41
|
 |
 |
|
|
subject: Java WebServices with Axis
|
|
|