Hi all,
By accident I run into a wired issue using XMLBeans data binding: For
testing purposes I added a simple log statement in my generated InOut class
before skel.process(). Using the generated Stub class I get a
NullPointerException in XMLBeans Factory.parse() (or better XMLBeans
Cur$CurLoadContext.finish,low see b). If I remove the log statement,
everything works. What makes this error wired is that it depends on the
existence of a <SOAP-ENV:Header/> within the request. If I send a SOAP
request without a SOAP-ENV Header tag, processing will succeed. Even WITH
the log statement.
I tried to track down the reason for it, however I got lost somewhere
between finding the right version of ws-commons and the current toString
implementation of OMElement, OMNode and so on. My first impression is that
there is a caching issue in ws.commons.om.OMElement.
Shouldn't the following work (I have working example for it)?
Instead of the generated
---
Foo param3 = null;
param3 = skel.process( (Foo)
fromOM(msgContext.getEnvelope().getBody().getFirstElement(), Foo.class));
---
I used
---
Foo param3 = null;
log.info(msgContext.getEnvelope().getBody().getFirstElement());
param3 = skel.process( (Foo)
fromOM(msgContext.getEnvelope().getBody().getFirstElement(), Foo.class));
---
and got the following exception:
23:03:14,299 ERROR [TestApiPortMessageReceiverInOut] Error processing
java.lang.RuntimeException: Data binding error
at
test.TestApiPortMessageReceiverInOut.fromOM(TestApiPortMessageReceiverInOut.
java:135)
at
test.TestApiPortMessageReceiverInOut.invokeBusinessLogic(TestApiPortMessageR
eceiverInOut.java:54)
at
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(Abstract
InOutSyncMessageReceiver.java:37)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:408)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HT
TPTransportUtils.java:288)
at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.ja
va:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:178)
at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalVal
ve.java:54)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssoci
ationValve.java:174)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
74)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126
)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105
)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:663)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:527)
at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThre
ad.java:112)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.NullPointerException
at
org.apache.xmlbeans.impl.store.Cur$CurLoadContext.finish(Cur.java:3184)
at
org.apache.xmlbeans.impl.store.Locale.loadXMLStreamReader(Locale.java:1216)
at
org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:843)
at
org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:826)
at
org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderB
ase.java:231)
at foo.bar.RequestDocument$Factory.parse(Unknown Source)
at
test.TestApiPortMessageReceiverInOut.fromOM(TestApiPortMessageReceiverInOut.
java:127)
... 26 more