Hi Shameera,

To test the service I just raise the bar to "Test Service" when I create new 
Web Service in eclipse, Then I click setVED method and fill in the data. Even 
though I populate items when I debug my service I see it coming in as null.

Serge Perepel
American Data
800.464.9942

From: Shameera Rathnayaka [mailto:shameerai...@gmail.com]
Sent: Thursday, September 05, 2013 8:37 AM
To: java-user@axis.apache.org
Subject: Re: axis2 arraylist/array issues

Hi Serge,
I may able to help you, Could you provide a sample request that you sent. And 
also mention how did you generate requests? eg: stub or SOAP UI or Service 
Client ?
Thanks,
Shameera.

On Mon, Sep 2, 2013 at 8:31 PM, Serge Perepel 
<se...@american-data.com<mailto:se...@american-data.com>> wrote:
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
se...@american-data.com<mailto:se...@american-data.com> | 
www.american-data.com<http://www.american-data.com>




--
Best Regards,
Shameera Rathnayaka.

email: shameera AT apache.org<http://apache.org> , shameerainfo AT 
gmail.com<http://gmail.com>
Blog : http://shameerarathnayaka.blogspot.com/

Reply via email to