Hi,
I'm using axis2 1.7.0SNAPSHOT and finding two problems.
First when I'm having ArrayList in my class, for example:
public class VEntryData{
protected List<ViewEntryItem> items;
public List<ViewEntryItem> getItems() {
if (items == null) {
items = new ArrayList<ViewEntryItem>();
}
return this.items;
}
}
My service functions look like this:
public VEntryData getVED(){
return ved;
}
public void setVED(VEntryData ved){
this.ved = ved;
}
In this scenario the getVED() works fine and when I do setVED() from the client
I pass a valid list but on the server side I get null for items field.
//========================================================================================
In the second scenario I use plain array:
public class VEntryData{
protected ViewEntryItem[] items;
public ViewEntryItem[] getItems() {
if (this.items == null) {
return new ViewEntryItem[ 0 ] ;
}
ViewEntryItem[] retVal = new ViewEntryItem[this.items.length] ;
System.arraycopy(this.items, 0, retVal, 0, this.items.length);
return (retVal);
}
public ViewEntryItem getItems(int idx) {
if (this.items == null) {
throw new IndexOutOfBoundsException();
}
return this.items[idx];
}
public int getRedLength() {
if (this.items == null) {
return 0;
}
return this.items.length;
}
}
My service functions are the same as in previous case. In this scenario the
getVED() produces the error:
[ERROR]
java.lang.NullPointerException
at
org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:255)
at
org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:97)
at
org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:989)
at
org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:848)
at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:71)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:682)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:190)
at
org.apache.axiom.om.impl.common.OMContainerHelper.build(OMContainerHelper.java:140)
at
org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:699)
at
org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:678)
at
org.apache.axiom.om.impl.common.OMContainerHelper.addChild(OMContainerHelper.java:101)
at
org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:231)
at
org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:227)
at org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:134)
at
org.apache.axis2.rpc.receivers.RPCUtil.processResponseAsDocLitWrapped(RPCUtil.java:533)
at
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:159)
at
org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:106)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:169)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:176)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:163)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
If anybody know how to battle those issues please help me.
[http://www.american-data.com/images/AmericanDataLogoSquareEmailSignature-01.png]
Serge Perepel
Software Developer | American Data
p. 800.464.9942 | f. 608.643.2314
[email protected]<mailto:[email protected]> | www.american-data.com