Hi Dominic, I guess you've hit a bug (though I'm not sure if this is the only location where this scenario can cause troubles). Could you please file a JIRA? If you have a debugger running, it would be valuable to know, which field causes the NPE. My guess is that getInput().getMessage() returns null.
Thanks, Tammo On Fri, Dec 28, 2012 at 3:28 PM, Dominic Pöllath <[email protected]>wrote: > The Apache ODE engine throws exception if i try to invoke webservice > without parameter. Because there is no InputMessage to the WebService. > As far as I know is there no need of input message (minOccurs="0" of > InputOperationMessage in W3C def). > A webservice with no input message should be supported, but as workaround > I’m using a empty messagepart with input message link. > It is working, but the WSDL file is not as clean as I thought it should > be. Anyway, is the ODE engine working as intended, and do I missing > something? > > best regards, > dominic > > > <!—w3c tBindingOperation –> > > <xs:complexType name="tBindingOperation"> > <xs:complexContent> > <xs:extension base="wsdl:tExtensibleDocumented"> > <xs:sequence> > <xs:element name="input" type="wsdl:tBindingOperationMessage" > minOccurs="0"/> > <xs:element name="output" type="wsdl:tBindingOperationMessage" > minOccurs="0"/> > <xs:element name="fault" type="wsdl:tBindingOperationFault" minOccurs="0" > maxOccurs="unbounded"/> > </xs:sequence> > <xs:attribute name="name" type="xs:NCName" use="required"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > > <!—used WSDL def–> > > <wsdl:types> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > attributeFormDefault="unqualified" elementFormDefault="qualified" > targetNamespace="http://adito/webservice"> > <xs:element name="helloResponse"> > <xs:complexType> > <xs:sequence> > <xs:element name="returnValue" type="xs:string"/> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:schema> > </wsdl:types> > <wsdl:message name="helloOutput"> > <wsdl:part name="parameters" element="tns:helloResponse"/> > </wsdl:message> > <wsdl:portType name="ws_helloworldPortType"> > <wsdl:operation name="hello"> > <wsdl:output message="tns:helloOutput"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="ws_helloworldSoapBinding" > type="tns:ws_helloworldPortType"> > <soap:binding style="document" transport=" > http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="hello"> > <soap:operation soapAction="hello" style="document"/> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > > <!—Nullpointer Exception –> > > Method "run" in class "org.apache.ode.bpel.runtime.INVOKE" threw an > unexpected exception. > java.lang.NullPointerException > at org.apache.ode.bpel.runtime.INVOKE.setupOutbound(INVOKE.java:224) > at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:72) > at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > 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:968) > at > org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208) > at > org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283) > at > org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:238) > at > org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279) > at > org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426) > at > org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460) > at > org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450) > at org.apache.ode.il.MockScheduler.doExecute(MockScheduler.java:304) > at org.apache.ode.il.MockScheduler.access$200(MockScheduler.java:47) > at org.apache.ode.il.MockScheduler$4.call(MockScheduler.java:123) > at > org.apache.ode.il.MockScheduler.execTransaction(MockScheduler.java:168) > at > org.apache.ode.il.MockScheduler.execTransaction(MockScheduler.java:159) > at org.apache.ode.il.MockScheduler$6.call(MockScheduler.java:190) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > Scheduled job failed; jobDetail=JobDetails( instanceId: null mexId: > 4611686018427387903 processId: {http://adito/bpel}Workflow-1 type: > INVOKE_INTERNAL channel: null correlatorId: null correlationKeySet: null > retryCount: null inMem: true detailsExt: {}) > java.lang.RuntimeException: java.lang.NullPointerException > at > org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464) > at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139) > at > org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:968) > at > org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208) > at > org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283) > at > org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:238) > at > org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279) > at > org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426) > at > org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460) > at > org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450) > at org.apache.ode.il.MockScheduler.doExecute(MockScheduler.java:304) > at org.apache.ode.il.MockScheduler.access$200(MockScheduler.java:47) > at org.apache.ode.il.MockScheduler$4.call(MockScheduler.java:123) > at > org.apache.ode.il.MockScheduler.execTransaction(MockScheduler.java:168) > at > org.apache.ode.il.MockScheduler.execTransaction(MockScheduler.java:159) > at org.apache.ode.il.MockScheduler$6.call(MockScheduler.java:190) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > Caused by: java.lang.NullPointerException > at org.apache.ode.bpel.runtime.INVOKE.setupOutbound(INVOKE.java:224) > at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:72) > at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451) > ... 20 more > Caught an exception during transaction > java.lang.RuntimeException: Scheduled transaction failed unexpectedly: > transaction will not be retried!. > at org.apache.ode.il.MockScheduler.doExecute(MockScheduler.java:306) > at org.apache.ode.il.MockScheduler.access$200(MockScheduler.java:47) > at org.apache.ode.il.MockScheduler$4.call(MockScheduler.java:123) > at > org.apache.ode.il.MockScheduler.execTransaction(MockScheduler.java:168) > at > org.apache.ode.il.MockScheduler.execTransaction(MockScheduler.java:159) > at org.apache.ode.il.MockScheduler$6.call(MockScheduler.java:190) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > Caused by: org.apache.ode.bpel.iapi.Scheduler$JobProcessorException: > java.lang.RuntimeException: java.lang.NullPointerException > at > org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:478) > at > org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450) > at org.apache.ode.il.MockScheduler.doExecute(MockScheduler.java:304) > ... 10 more > Caused by: java.lang.RuntimeException: java.lang.NullPointerException > at > org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464) > at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139) > at > org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:968) > at > org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:208) > at > org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:283) > at > org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:238) > at > org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279) > at > org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426) > at > org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460) > ... 12 more > Caused by: java.lang.NullPointerException > at org.apache.ode.bpel.runtime.INVOKE.setupOutbound(INVOKE.java:224) > at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:72) > at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451) > ... 20 more -- Tammo van Lessen - http://www.taval.de
