On Tue, Apr 21, 2009 at 1:37 AM, Milinda Pathirage <
[email protected]> wrote:
> I deployed a BPEL which tests SOAP Header support and sent a request
> without
> the SOAP Header part.
>
> In that case following exception thrown:
>
> [2009-04-21 11:32:42,386] FATAL - Message missing part: header
> {org.apache.ode.bpel.rtrep.v2.PICK}
> [2009-04-21 11:32:42,389] ERROR - Method "onRequestRcvd" in class
> "org.apache.ode.bpel.rtrep.v2.PICK$WAITING$2" threw an unexpected
> exception.
> {org.apache.ode.jacob.vpu.JacobVPU}
> org.apache.ode.bpel.rtrep.v2.InvalidContextException: Message missing part:
> header
> at org.apache.ode.bpel.rtrep.v2.PICK.initVariable(PICK.java:190)
> at org.apache.ode.bpel.rtrep.v2.PICK.access$400(PICK.java:47)
> at
> org.apache.ode.bpel.rtrep.v2.PICK$WAITING$2.onRequestRcvd(PICK.java:270)
> 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.rtrep.v2.RuntimeInstanceImpl.execute(RuntimeInstanceImpl.java:639)
> at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:616)
> at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.executeCreateInstance(BpelRuntimeContextImpl.java:604)
> ....
> [2009-04-21 11:32:42,391] ERROR - Work for instance {
> http://dfa.com/test}newProcess-2#501<http://dfa.com/test%7DnewProcess-2#501>in
> thread
> Thread[ODEServerImpl-1,5,main] resulted in an exception.
> {org.apache.ode.bpel.engine.BpelInstanceWorker}
> java.lang.RuntimeException:
> org.apache.ode.bpel.rtrep.v2.InvalidContextException: Message missing part:
> header
> 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.rtrep.v2.RuntimeInstanceImpl.execute(RuntimeInstanceImpl.java:639)
> at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:616)
> at
>
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.executeCreateInstance(BpelRuntimeContextImpl.java:604)
> ...
>
> I was able to fix the time out error by catching the BpelEngineException
> inside ODEProcess.invokeProcess method and sending back a SOAP Fault with
> exception message.
>
> But the problem is event there is a error in the incoming message, there is
> a instance created for this message and that instance is in ACTIVE state.
> In
> case of situation like this, I think the created instance must in error or
> failed state.
Agreed.
> And also in current ODE trunk we are not sending SOAP Fault if
> there is BpelEngineException. I think we need to send a soap fault when
> BpelEngineException occur. WDYT?
>
I believe Alexis has been working on this recently, are you using a recent
build?
Matthieu
>
> Thanks,
> Milinda
>
> --
> http://mpathirage.com
> http://wso2.org "Oxygen for Web Service Developers"
> http://wsaxc.blogspot.com "Web Services With Axis2/C"
>