Hi !
New week, new trouble !
I'd like to implement a try/catch business process, just for test purpose.
So, I deploy an Axis Web services called 'FaultyService', able to throw
exception on demand (input != 0 => return an Object, input = 0 => throw
a FaultyException). And a business process wich invoke FaultyService.
I basically define a catchAll in a faultHandler at process level, witch
rethrow the exception :
<bpws:faultHandlers>
<bpws:catchAll>
<bpws:sequence>
<bpws:rethrow/>
</bpws:sequence>
</bpws:catchAll>
</bpws:faultHandlers>
When I invoke the process, asking for an exception to be thrown, well
... nothing happend, and it end in a timeout. The FaultyException is
thrown, as I see it at SOAPMonitor Level in Axis2 :
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Here is a FaultyException throwed by
FaultyService</faultstring>
<detail />
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
In tomcat logs, I get the following error :
ERROR - GeronimoLog.error(108) | An exception occured while executing an
isolated transaction, the transaction is going to be abandoned.
java.lang.NullPointerException
at
org.apache.ode.axis2.ExternalService$4.call(ExternalService.java:330)
at
org.apache.ode.axis2.ExternalService$4.call(ExternalService.java:327)
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:613)
I try to deploy the svn test process, but it fails with a lot of compile
errors.
I used :
http://svn.apache.org/repos/asf/ode/branches/APACHE_ODE_1.1/bpel-test/src/test/resources/bpel/2.0/TestFaultHandlers/
(it requires probeService.wsdl I get from here :
http://svn.apache.org/repos/asf/ode/branches/APACHE_ODE_1.1/bpel-test/src/test/resources/bpel/2.0/ProbeService/probeService.wsdl)
I think I miss something about Fault handling in BPEL :(
--
Sebatian