Executing SOAP services, which doesn't return value
---------------------------------------------------
Key: ODE-260
URL: https://issues.apache.org/jira/browse/ODE-260
Project: ODE
Issue Type: Bug
Components: BPEL Runtime
Affects Versions: 1.1.1, 1.1
Environment: Windows XP Pro, JDK 1.5.0.07, Oracle 10g XE, Apache
Tomcat 5.5.25, OpenJPA
Reporter: Alexey Ousov
Fix For: 1.2
Very strange things happen, when executing exetrnal services in two-way style,
and this service doesn't return values. Something like this:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsa="http://www.w3.org/2005/08/addressing">
<soapenv:Header>
<wsa:Action>http://www.comped.it/te/dbService/dbService/commitTransactionResponse</wsa:Action>
<wsa:RelatesTo>uuid:hqejbhcnphr35voswr4cg3</wsa:RelatesTo>
</soapenv:Header>
<soapenv:Body />
</soapenv:Envelope>
First of all I got the following exception (happens only if INFO logging is
enabled):
16:30:19,859 ERROR ExternalService$4.call(333) : Unable to process response:
Cannot stringify null Node!
java.lang.IllegalArgumentException: Cannot stringify null Node!
at org.apache.ode.utils.DOMUtils.domToString(DOMUtils.java:419)
at org.apache.ode.axis2.ExternalService$4.call(ExternalService.java:328)
at org.apache.ode.axis2.ExternalService$4.call(ExternalService.java:295)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
at
org.apache.ode.scheduler.simple.SimpleScheduler$1.call(SimpleScheduler.java:160)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
I fixed it, but then I've got the following (because element was empty string):
18:03:17,843 DEBUG LoggingErrorHandler.fatalError(89) : :-1:-1:FATAL:Premature
end of file.
18:03:17,859 ERROR INVOKE$1.onResponse(116) : Exception while processing invoke
response
java.lang.RuntimeException: org.xml.sax.SAXParseException: Premature end of
file.
at org.apache.ode.dao.jpa.MessageDAOImpl.getData(MessageDAOImpl.java:76)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.mergeHeaders(BpelRuntimeContextImpl.java:1153)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.getPartnerResponse(BpelRuntimeContextImpl.java:1111)
at org.apache.ode.bpel.runtime.INVOKE$1.onResponse(INVOKE.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:832)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:392)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:328)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:341)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:340)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:339)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:336)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at org.apache.ode.utils.DOMUtils.parse(DOMUtils.java:622)
at org.apache.ode.utils.DOMUtils.stringToDOM(DOMUtils.java:548)
at org.apache.ode.dao.jpa.MessageDAOImpl.getData(MessageDAOImpl.java:74)
... 23 more
And finally I got the following exception:
18:35:48,515 ERROR INVOKE$1.onResponse(116) : Exception while processing invoke
response
java.lang.NullPointerException
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.mergeHeaders(BpelRuntimeContextImpl.java:1160)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.getPartnerResponse(BpelRuntimeContextImpl.java:1111)
at org.apache.ode.bpel.runtime.INVOKE$1.onResponse(INVOKE.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:832)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:392)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:328)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:341)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:340)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:339)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:336)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.