axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Veithen <andreas.veit...@gmail.com>
Subject Re: Parser has already reached end of the document. No siblings found
Date Thu, 22 Jan 2009 22:40:09 GMT
I tried to reproduce the issue using the SOAP message you posted and
trying to emulate the sequence of Axiom calls your code is making, but
I didn't succeed. My guess is that this is a subtle issue somewhere in
Axiom and that is triggered under particular conditions. The only way
to locate the root cause would be to debug the issue using your code.
If you are willing to share your code with us in a form that allows us
to easily reproduce the issue, we can do this. Otherwise, as a
workaround for this issue, you could add the following instruction to
your code (in place of the System.out.println):

msgContext.getEnvelope().build()

Regards,

Andreas

On Wed, Jan 21, 2009 at 11:03, asheikh <asad.a.sheikh@gmail.com> wrote:
> Hi Andreas,
>
> did this show anything that I am doing, thanks for  your help
>
>
> On Wed, Jan 21, 2009 at 7:34 AM, asheikh <asad.a.sheikh@gmail.com> wrote:
>>
>> Andreas,
>>
>> I couldn't respond earlier than this,  It is a soap request,
>>
>> <soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>> xmlns:q0="http://www.qnb.com.qa/mwSchema"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>  <soapenv:Body>
>>  <q0:BillRequest>
>>  <section>
>>   <uid>test012565</uid>
>>   <requestorID>XYZA</requestorID>
>>   <lang>EN</lang>
>>   <branchCode>0011</branchCode>
>>   <client>xx.xx.xx.xx</client>
>>   <date>2009-01-20T07:07:54.587Z</date>
>>   <id>0011</id>
>>   </section>
>>   <Data />
>>   </q0:BillRequest>
>>   </soapenv:Body>
>>   </soapenv:Envelope>
>>
>>
>>
>> On Tue, Jan 20, 2009 at 4:11 PM, Andreas Veithen
>> <andreas.veithen@gmail.com> wrote:
>>>
>>> Can you also post a sample request that triggers this issue? In
>>> particular is it a SOAP or plain XML request?
>>>
>>> Andreas
>>>
>>> On Tue, Jan 20, 2009 at 12:40, asheikh <asad.a.sheikh@gmail.com> wrote:
>>> > Andreas,
>>> >
>>> > Below is the code that calls check method
>>> >
>>> > if ("retreiveBillservice".equals(methodName)) {
>>> >
>>> >                     RAIResponse rAIResponse = null;
>>> >                     RAIRequest wrappedParam = (RAIRequest)
>>> > fromOM(msgContext
>>> >                             .getEnvelope().getBody().getFirstElement(),
>>> >                             RAIRequest.class,
>>> > getEnvelopeNamespaces(msgContext
>>> >                                     .getEnvelope()));
>>> >
>>> >                     try {
>>> >                         if(doCheckMM)
>>> >                             mmc.check(msgContext);
>>> >
>>> >
>>> >
>>> > On Tue, Jan 20, 2009 at 2:36 PM, asheikh <asad.a.sheikh@gmail.com>
>>> > wrote:
>>> >>
>>> >> Thansk andreas, yes this is the code that causes  the exception
>>> >>
>>> >> public void check(MessageContext ctx) throws MiddlewareException {
>>> >>         Iterator iter =
>>> >> ctx.getEnvelope().getBody().getChildElements();
>>> >>         OMElement content = null;
>>> >>         while (iter.hasNext()) {
>>> >>             OMNode node = (OMNode) iter.next();
>>> >>             if (node.getType() == OMNode.ELEMENT_NODE) {
>>> >>                 content = (OMElement) node;
>>> >>                 break;
>>> >>             }
>>> >>         }
>>> >> ..
>>> >> ...
>>> >>
>>> >>
>>> >> On Tue, Jan 20, 2009 at 2:34 PM, Andreas Veithen
>>> >> <andreas.veithen@gmail.com> wrote:
>>> >>>
>>> >>> Can you post the code in MMCHandler#check?
>>> >>>
>>> >>> Andreas
>>> >>>
>>> >>> On Tue, Jan 20, 2009 at 12:11, asheikh <asad.a.sheikh@gmail.com>
>>> >>> wrote:
>>> >>> > Thanks a lot Andreas,
>>> >>> >
>>> >>> > Please see the stactrace below:
>>> >>> >
>>> >>> > Start- Stactrace:
>>> >>> >
>>> >>> > org.apache.axiom.om.OMException: Parser has already reached
end of
>>> >>> > the
>>> >>> > document. No siblings found
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling()Lorg/apache/axiom/om/OMNode;(OMElementImpl.java:339)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.traverse.OMChildElementIterator.next()Ljava/lang/Object;(OMChildElementIterator.java:104)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > com.xxx.yyy.mmc.MMCHandler.check(Lorg/apache/axis2/context/MessageContext;)V(MMCHandler.java:51)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > com.xxx.yyy.retrieve.RetrieveServiceMessageReceiverInOut.invokeBusinessLogic(Lorg/apache/axis2/context/MessageContext;Lorg/apache/axis2/context/MessageContext;)V(RetrieveServiceMessageReceiverInOut.java:172)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(Lorg/apache/axis2/context/MessageContext;)V(AbstractInOutSyncMessageReceiver.java:42)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.receivers.AbstractMessageReceiver.receive(Lorg/apache/axis2/context/MessageContext;)V(AbstractMessageReceiver.java:100)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.engine.AxisEngine.receive(Lorg/apache/axis2/context/MessageContext;)Lorg/apache/axis2/engine/Handler$InvocationResponse;(AxisEngine.java:176)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(Lorg/apache/axis2/context/MessageContext;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/apache/axis2/engine/Handler$InvocationResponse;(HTTPTransportUtils.java:275)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.transport.http.AxisServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AxisServlet.java:133)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(HttpServlet.java:760)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(HttpServlet.java:853)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava/lang/Object;(ServletStubImpl.java:1072)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lweblogic/servlet/internal/FilterChainImpl;)V(ServletStubImpl.java:465)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ServletStubImpl.java:348)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava/lang/Object;(WebAppServletContext.java:6981)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(AuthenticatedSubject.java:321)2009-01-20
>>> >>> > 14:03:23,126 ERROR org.apache.axis2.engine.AxisEngine  -
>>> >>> > java.util.NoSuchElementException
>>> >>> > org.apache.axis2.AxisFault: java.util.NoSuchElementException
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.AxisFault.makeFault(Ljava/lang/Throwable;)Lorg/apache/axis2/AxisFault;(AxisFault.java:430)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > com.xxx.yyy.retrieve.RetrieveServiceMessageReceiverInOut.invokeBusinessLogic(Lorg/apache/axis2/context/MessageContext;Lorg/apache/axis2/context/MessageContext;)V(RetrieveServiceMessageReceiverInOut.java:739)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(Lorg/apache/axis2/context/MessageContext;)V(AbstractInOutSyncMessageReceiver.java:42)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.receivers.AbstractMessageReceiver.receive(Lorg/apache/axis2/context/MessageContext;)V(AbstractMessageReceiver.java:100)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.engine.AxisEngine.receive(Lorg/apache/axis2/context/MessageContext;)Lorg/apache/axis2/engine/Handler$InvocationResponse;(AxisEngine.java:176)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(Lorg/apache/axis2/context/MessageContext;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/apache/axis2/engine/Handler$InvocationResponse;(HTTPTransportUtils.java:275)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axis2.transport.http.AxisServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AxisServlet.java:133)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(HttpServlet.java:760)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(HttpServlet.java:853)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava/lang/Object;(ServletStubImpl.java:1072)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lweblogic/servlet/internal/FilterChainImpl;)V(ServletStubImpl.java:465)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ServletStubImpl.java:348)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava/lang/Object;(WebAppServletContext.java:6981)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(AuthenticatedSubject.java:321)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.security.service.SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(SecurityManager.java:121)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogic/servlet/internal/ServletRequestImpl;Lweblogic/servlet/internal/ServletResponseImpl;)V(WebAppServletContext.java:3892)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic/kernel/ExecuteThread;)V(ServletRequestImpl.java:2766)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > weblogic.kernel.ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:224)
>>> >>> >     at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:183)
>>> >>> >     at
>>> >>> > java.lang.Thread.startThreadFromVM(Ljava/lang/Thread;)V(Unknown
>>> >>> > Source)
>>> >>> > Caused by: org.apache.axiom.om.OMException:
>>> >>> > java.util.NoSuchElementException
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.builder.StAXOMBuilder.next()I(StAXOMBuilder.java:260)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling()Lorg/apache/axiom/om/OMNode;(OMElementImpl.java:337)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.traverse.OMChildElementIterator.next()Ljava/lang/Object;(OMChildElementIterator.java:104)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > com.xxx.yyy.log.LogHandler.invoke(Lorg/apache/axis2/context/MessageContext;)Lorg/apache/axis2/engine/Handler$InvocationResponse;(LogHandler.java:50)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > com.xxx.yyy.retrieve.RetrieveServiceMessageReceiverInOut.invokeBusinessLogic(Lorg/apache/axis2/context/MessageContext;Lorg/apache/axis2/context/MessageContext;)V(RetrieveServiceMessageReceiverInOut.java:732)
>>> >>> >     ... 18 more
>>> >>> > Caused by: java.util.NoSuchElementException
>>> >>> >     at
>>> >>> >
>>> >>> > com.ctc.wstx.sr.BasicStreamReader.next()I(BasicStreamReader.java:1083)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > javax.xml.stream.util.StreamReaderDelegate.next()I(StreamReaderDelegate.java:59)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.builder.SafeXMLStreamReader.next()I(SafeXMLStreamReader.java:183)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext()I(StAXOMBuilder.java:597)
>>> >>> >     at
>>> >>> >
>>> >>> >
>>> >>> > org.apache.axiom.om.impl.builder.StAXOMBuilder.next()I(StAXOMBuilder.java:172)
>>> >>> >     ... 22 more
>>> >>> >
>>> >>> > End- Stactrace:
>>> >>> >
>>> >>> > On Tue, Jan 20, 2009 at 1:52 PM, Andreas Veithen
>>> >>> > <andreas.veithen@gmail.com>
>>> >>> > wrote:
>>> >>> >>
>>> >>> >> Axiom uses a deferred parsing approach, i.e. it will build
the
>>> >>> >> object
>>> >>> >> tree on demand. A call to toString() triggered by the
>>> >>> >> System.out.println instruction or by inspecting the object
in a
>>> >>> >> debugger will have the effect of building the entire tree.
>>> >>> >> Probably
>>> >>> >> there is some code somewhere that works perfectly well
with a
>>> >>> >> fully
>>> >>> >> built tree, but not if it is only partially built. This
could be a
>>> >>> >> bug
>>> >>> >> in Axiom. Do you have a stacktrace of the exception?
>>> >>> >>
>>> >>> >> Andreas
>>> >>> >>
>>> >>> >> On Tue, Jan 20, 2009 at 11:26, asheikh <asad.a.sheikh@gmail.com>
>>> >>> >> wrote:
>>> >>> >> > Andreas,
>>> >>> >> >
>>> >>> >> > Thanks for your input, but it is still the same...
Just
>>> >>> >> > wondering
>>> >>> >> > why
>>> >>> >> > when i
>>> >>> >> > debug it is  working and when I am not it does''t
work
>>> >>> >> >
>>> >>> >> > Adding following line on top of the method also helps
>>> >>> >> >     System.out.println("Messages: "+msgContext.getEnvelope());
>>> >>> >> >
>>> >>> >> > but this doesn't help
>>> >>> >> >        msgContext.getEnvelope();
>>> >>> >> >
>>> >>> >> >
>>> >>> >> > Thanks
>>> >>> >> >
>>> >>> >> > On Tue, Jan 20, 2009 at 12:16 PM, Andreas Veithen
>>> >>> >> > <andreas.veithen@gmail.com> wrote:
>>> >>> >> >>
>>> >>> >> >> Could be somehow related to WSCOMMONS-372. Can
you test this
>>> >>> >> >> with
>>> >>> >> >> Axiom
>>> >>> >> >> 1.2.8?
>>> >>> >> >>
>>> >>> >> >> Andreas
>>> >>> >> >>
>>> >>> >> >> On Tue, Jan 20, 2009 at 08:56, asheikh
>>> >>> >> >> <asad.a.sheikh@gmail.com>
>>> >>> >> >> wrote:
>>> >>> >> >> > Hi,
>>> >>> >> >> >
>>> >>> >> >> > I have also realized that when I debug the
>>> >>> >> >> > Message Context in eclipse and inspect in,
it works and the
>>> >>> >> >> > envelope
>>> >>> >> >> > message
>>> >>> >> >> > is there...
>>> >>> >> >> >
>>> >>> >> >> > Can please anyone give me some idea, is it
a bug in 1.4.1 or
>>> >>> >> >> > there is
>>> >>> >> >> > something I am missing. The same code works
in axis2. 1.3.1
>>> >>> >> >> >
>>> >>> >> >> > Thanks in advance
>>> >>> >> >> >
>>> >>> >> >> > On Tue, Jan 20, 2009 at 8:47 AM, asheikh
>>> >>> >> >> > <asad.a.sheikh@gmail.com>
>>> >>> >> >> > wrote:
>>> >>> >> >> >>
>>> >>> >> >> >> Hi,
>>> >>> >> >> >>
>>> >>> >> >> >> I have migrated my services from axis2.
1.3 to axis2 1.4,
>>> >>> >> >> >> and I
>>> >>> >> >> >> am
>>> >>> >> >> >> getting
>>> >>> >> >> >> the following error whenever I invoke
any service. Please
>>> >>> >> >> >> advice,
>>> >>> >> >> >> Thanks in
>>> >>> >> >> >> advance
>>> >>> >> >> >>
>>> >>> >> >> >> This code does't work:
>>> >>> >> >> >>     public void invokeBusinessLogic(
>>> >>> >> >> >>             org.apache.axis2.context.MessageContext
>>> >>> >> >> >> msgContext,
>>> >>> >> >> >>             org.apache.axis2.context.MessageContext
>>> >>> >> >> >> newMsgContext)
>>> >>> >> >> >>             throws org.apache.axis2.AxisFault
{
>>> >>> >> >> >>
>>> >>> >> >> >>         try {
>>> >>> >> >> >>
>>> >>> >> >> >>             // get the implementation
class
>>> >>> >> >> >>             Object obj =
>>> >>> >> >> >> getTheImplementationObject(msgContext);
>>> >>> >> >> >>             //System.out.println("Message
xml :
>>> >>> >> >> >> "+msgContext.getEnvelope());
>>> >>> >> >> >>
>>> >>> >> >> >>
>>> >>> >> >> >> ..... more code
>>> >>> >> >> >>        }
>>> >>> >> >> >>
>>> >>> >> >> >>
>>> >>> >> >> >> This code Works(removing comments from
the System.out.):
>>> >>> >> >> >>     public void invokeBusinessLogic(
>>> >>> >> >> >>             org.apache.axis2.context.MessageContext
>>> >>> >> >> >> msgContext,
>>> >>> >> >> >>             org.apache.axis2.context.MessageContext
>>> >>> >> >> >> newMsgContext)
>>> >>> >> >> >>             throws org.apache.axis2.AxisFault
{
>>> >>> >> >> >>
>>> >>> >> >> >>         try {
>>> >>> >> >> >>
>>> >>> >> >> >>             // get the implementation
class
>>> >>> >> >> >>             Object obj =
>>> >>> >> >> >> getTheImplementationObject(msgContext);
>>> >>> >> >> >>             System.out.println("Message
xml :
>>> >>> >> >> >> "+msgContext.getEnvelope());
>>> >>> >> >> >>
>>> >>> >> >> >> ..... more code
>>> >>> >> >> >>        }
>>> >>> >> >> >>
>>> >>> >> >> >> Exception:
>>> >>> >> >> >> - <soapenv:Envelope
>>> >>> >> >> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>>> >>> >> >> >> - <soapenv:Body>
>>> >>> >> >> >> - <soapenv:Fault>
>>> >>> >> >> >>   <faultcode>soapenv:Server</faultcode>
>>> >>> >> >> >>   <faultstring>Parser has already
reached end of the
>>> >>> >> >> >> document.
>>> >>> >> >> >> No
>>> >>> >> >> >> siblings
>>> >>> >> >> >> found</faultstring>
>>> >>> >> >> >>   <detail />
>>> >>> >> >> >>   </soapenv:Fault>
>>> >>> >> >> >>   </soapenv:Body>
>>> >>> >> >> >>   </soapenv:Envelope>
>>> >>> >> >> >
>>> >>> >> >> >
>>> >>> >> >
>>> >>> >> >
>>> >>> >
>>> >>> >
>>> >>
>>> >
>>> >
>>
>
>

Mime
View raw message