Hi Jens, I've replied to the issue as well. Please make sure to use the 1.1 branch, the trunk is under development and is not as stable.
Thanks, Matthieu On 10/10/07, Jens Goldhammer <[EMAIL PROTECTED]> wrote: > > > I have reopened the fixed issue in JIRA. All details under > > https://issues.apache.org/jira/browse/ODE-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > JIRA > > > > Alex Boisvert wrote: > > > > Excellent, I've also created a similar test case... I'm not sure if they > > trigger the same bug yet but I'll be looking at both of them next week. > > > > thanks!! > > alex > > > > > > On 10/5/07, Jens Goldhammer <[EMAIL PROTECTED]> wrote: > >> > >> > >> Ok, I have opened an issue > >> (https://issues.apache.org/jira/browse/ODE-194) > >> and included a minimal runnable example for showing the error. > >> > >> > >> Jens Goldhammer wrote: > >> > > >> > Ok, I have made further analysis. I tested the service with a > generated > >> > axis2-client and I see that I am getting back the fault correctly, > i.e. > >> I > >> > can access the self-defined faultcode, faultActor and so on. > >> > > >> > My wsdl definition for this wsdl fault contains following: > >> > > >> > <xsd:element name="faultCode" type="xsd:string"> > >> > <xsd:annotation> > >> > <xsd:documentation> > >> > faultCode consists of a five letter > >> identifier plus a > >> > three digit id (serial number). For > >> example, "GENEX001" > >> > is a generic error and "AUTEX001" is a > >> authenification > >> > error > >> > </xsd:documentation> > >> > </xsd:annotation> > >> > </xsd:element> > >> > <xsd:element name="faultString" type="xsd:string"> > >> > <xsd:annotation> > >> > <xsd:documentation> > >> > corresponding description of the > >> faultCode > >> > </xsd:documentation> > >> > </xsd:annotation> > >> > </xsd:element> > >> > <xsd:element name="faultActor" type="xsd:string"> > >> > <xsd:annotation> > >> > <xsd:documentation> > >> > element displays url of the webservice > >> where the > >> > exception occured > >> > </xsd:documentation> > >> > </xsd:annotation> > >> > </xsd:element> > >> > <xsd:element name="faultDetail" type="xsd:string"> > >> > <xsd:annotation> > >> > <xsd:documentation> > >> > element pictures the actual exception > >> message and > >> > complete stack trace. > >> > </xsd:documentation> > >> > </xsd:annotation> > >> > </xsd:element> > >> > > >> > > >> > <xsd:element name="LogFault"> > >> > <xsd:annotation> > >> > <xsd:documentation> > >> > fault element for handling errors > during > >> the logservice > >> > </xsd:documentation> > >> > </xsd:annotation> > >> > <xsd:complexType> > >> > <xsd:sequence> > >> > <xsd:element ref="types:faultCode"/> > >> > <xsd:element ref="types:faultString"/> > >> > <xsd:element ref="types:faultActor"/> > >> > <xsd:element ref="types:faultDetail"/> > >> > </xsd:sequence> > >> > </xsd:complexType> > >> > </xsd:element> > >> > > >> > > >> > I send a response and I am getting back following response: > >> > > >> > <soapenv:Envelope > >> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> > >> > <soapenv:Body> > >> > <soapenv:Fault> > >> > <faultcode>soapenv:Server</faultcode> > >> > <faultstring>LogFaultException</faultstring> > >> > <detail> > >> > <ns2:LogFault > >> > xmlns:ns2="http://cis.log.interface.de.ibm.com/types"> > >> > <s547:faultCode > >> > > >> xmlns:s547="http://cis.de.ibm.com/simpleTypes > ">LOGEX002</s547:faultCode> > >> > <s548:faultString > >> > xmlns:s548="http://cis.de.ibm.com/simpleTypes">Database for > LogService > >> not > >> > available.</s548:faultString> > >> > <s549:faultActor > >> > xmlns:s549="http://cis.de.ibm.com/simpleTypes > ">logRun</s549:faultActor> > >> > <s550:faultDetail > >> > xmlns:s550="http://cis.de.ibm.com/simpleTypes">no > >> > stacktrace.</s550:faultDetail> > >> > </ns2:LogFault> > >> > </detail> > >> > </soapenv:Fault> > >> > </soapenv:Body> > >> > </soapenv:Envelope> > >> > > >> > I have tested it with an autogenerated axis-client and a > >> junit-testmethod. > >> > If the logfaultexception is thrown by the service, I can output the > >> > faultActor, faultString, detail and code in the catch-block. > >> > > >> > /** > >> > * Auto generated test method > >> > */ > >> > public void testlogRun() { > >> > > >> > LogRunResponseVO logRun = null; > >> > try { > >> > com.ibm.de.cis.log.client.CisLogServiceStubstub > >> = > >> new > >> > com.ibm.de.cis.log.client.CisLogServiceStub( > >> > endpoint); > >> > > >> com.ibm.de.cis.log.client.CisLogServiceStub.LogRunRequestVO > >> > logRunRequestVO18 = > >> > (com.ibm.de.cis.log.client.CisLogServiceStub.LogRunRequestVO) > >> > getTestObject( > >> com.ibm.de.cis.log.client.CisLogServiceStub.LogRunRequestVO.class); > >> > logRunRequestVO18.setEmptyparam( > >> > logRun = stub.logRun(logRunRequestVO18); > >> > } catch (AxisFault e) { > >> > e.printStackTrace(); > >> > } catch (RemoteException e) { > >> > e.printStackTrace(); > >> > } catch (LogFaultException e) { > >> > LogFault fault = e.getFaultMessage(); > >> > System.out.println("Actor: " + > >> fault.getFaultActor > >> ()); > >> > System.out.println("Code:" + fault.getFaultCode > >> ()); > >> > System.out.println("Detail:" + > >> fault.getFaultDetail()); > >> > System.out.println("FaultString:" + > >> fault.getFaultString()); > >> > e.printStackTrace(); > >> > } catch (Exception e) { > >> > e.printStackTrace(); > >> > } > >> > System.out.println(logRun.getRunId()); > >> > > >> > } > >> > > >> > Question is why Ode cannot access these information? Following > >> stacktrace > >> > is available in Ode. > >> > > >> > <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope > >> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ > >> "><soapenv:Header><addr:To > >> > xmlns:addr="http://www.w3.org/2005/08/addressing"> > >> http://localhost:8180/cisLogWeb/services/cisLogService > >> </addr:To><addr:Action > >> > xmlns:addr="http://www.w3.org/2005/08/addressing"> > >> http://cis.log.interface.de.ibm.com/service/logRun > >> </addr:Action><addr:ReplyTo > >> > xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address> > >> http://www.w3.org/2005/08/addressing/anonymous > >> </addr:Address></addr:ReplyTo><addr:MessageID > >> > xmlns:addr="http://www.w3.org/2005/08/addressing > >> > ">uuid:hqejbhcnphr2n1qwgjen65</addr:MessageID></soapenv:Header><soapenv:Body><axis2ns2:LogRunRequestVO > >> > xmlns:axis2ns2="http://cis.log.interface.de.ibm.com/types" > >> > xmlns:types="http://cis.log.interface.de.ibm.com/types"> > >> > <xsd:emptyparam > >> > xmlns:xsd="http://cis.de.ibm.com/simpleTypes">true</xsd:emptyparam> > >> > > >> > </axis2ns2:LogRunRequestVO></soapenv:Body></soapenv:Envelope> > >> > 10:48:58,462 DEBUG [SessionOutHandler] <?xml version='1.0' > >> > encoding='utf-8'?><soapenv:Envelope > >> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ > >> "><soapenv:Header><addr:To > >> > xmlns:addr="http://www.w3.org/2005/08/addressing"> > >> http://localhost:8180/cisLogWeb/services/cisLogService > >> </addr:To><addr:Action > >> > xmlns:addr="http://www.w3.org/2005/08/addressing"> > >> http://cis.log.interface.de.ibm.com/service/logRun > >> </addr:Action><addr:ReplyTo > >> > xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address> > >> http://www.w3.org/2005/08/addressing/anonymous > >> </addr:Address></addr:ReplyTo><addr:MessageID > >> > xmlns:addr="http://www.w3.org/2005/08/addressing > >> > ">uuid:hqejbhcnphr2n1qwgjen65</addr:MessageID></soapenv:Header><soapenv:Body><axis2ns2:LogRunRequestVO > >> > xmlns:axis2ns2="http://cis.log.interface.de.ibm.com/types" > >> > xmlns:types="http://cis.log.interface.de.ibm.com/types"> > >> > <xsd:emptyparam > >> > xmlns:xsd="http://cis.de.ibm.com/simpleTypes">true</xsd:emptyparam> > >> > > >> > </axis2ns2:LogRunRequestVO></soapenv:Body></soapenv:Envelope> > >> > DEBUG - GeronimoLog.debug(66) | Found a header in incoming message, > >> > checking if there are endpoints there. > >> > 10:48:59,503 DEBUG [SessionInHandler] Found a header in incoming > >> message, > >> > checking if there are endpoints there. > >> > ERROR - GeronimoLog.error(108) | Error sending message > >> > (mex={PartnerRoleMex#hqejbhcnphr2n1qwgjen64 [PID > >> > {http://com.ibm.de.cis/archive}cisArchive-40] calling > >> > [EMAIL PROTECTED](...)}): > >> > LogFaultException > >> > org.apache.axis2.AxisFault: LogFaultException > >> > at > >> > > >> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext( > Utils.java > >> :486) > >> > at > >> > org.apache.axis2.description.OutInAxisOperationClient.handleResponse( > >> OutInAxisOperation.java:343) > >> > at > >> > org.apache.axis2.description.OutInAxisOperationClient.send( > >> OutInAxisOperation.java:389) > >> > at > >> > org.apache.axis2.description.OutInAxisOperationClient.executeImpl( > >> OutInAxisOperation.java:211) > >> > at > >> > org.apache.axis2.client.OperationClient.execute(OperationClient.java > >> :163) > >> > at > >> > org.apache.ode.axis2.ExternalService$1$1.call(ExternalService.java > :148) > >> > 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) > >> > 10:48:59,513 ERROR [ExternalService] Error sending message > >> > (mex={PartnerRoleMex#hqejbhcnphr2n1qwgjen64 [PID > >> > {http://com.ibm.de.cis/archive}cisArchive-40] calling > >> > [EMAIL PROTECTED](...)}): > >> > LogFaultException > >> > org.apache.axis2.AxisFault: LogFaultException > >> > at > >> > > >> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext( > Utils.java > >> :486) > >> > at > >> > org.apache.axis2.description.OutInAxisOperationClient.handleResponse( > >> OutInAxisOperation.java:343) > >> > at > >> > org.apache.axis2.description.OutInAxisOperationClient.send( > >> OutInAxisOperation.java:389) > >> > at > >> > org.apache.axis2.description.OutInAxisOperationClient.executeImpl( > >> OutInAxisOperation.java:211) > >> > at > >> > org.apache.axis2.client.OperationClient.execute(OperationClient.java > >> :163) > >> > at > >> > org.apache.ode.axis2.ExternalService$1$1.call(ExternalService.java > :148) > >> > 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) > >> > DEBUG - GeronimoLog.trace(54) | > >> Mex[hqejbhcnphr2n1qwgjen64].setPortOp(...) > >> > 10:48:59,663 DEBUG [MessageExchangeImpl] > >> > Mex[hqejbhcnphr2n1qwgjen64].setPortOp(...) > >> > > >> > Thanks for your help. > >> > Jens > >> > > >> > > >> > Jens Goldhammer wrote: > >> >> > >> >> > >> >> > >> >> Alex Boisvert wrote: > >> >>> > >> >>> On 10/2/07, Jens Goldhammer <[EMAIL PROTECTED]> wrote: > >> >>>> > >> >>>> I believe in my case that Axis2 cannot acces the fault which the > >> >>>> service > >> >>>> responses to ODE back. Here the initial business fault become an > ODE > >> >>>> fault > >> >>>> and behave as you have described already. > >> >>>> Or does the stacktrace below has an other meaning? > >> >>>> > >> >>>> org.apache.axis2.AxisFault: LogFaultException > >> >>>> at > >> >>>> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext( > >> Utils.java > >> >>>> :486) > >> >>> > >> >>> > >> >>> The stacktrace indicates Ode detected the fault and is re-throwing > >> it. > >> >>> But > >> >>> I'm not sure I understand what doesn't work for you.... is it that, > >> >>> > >> >>> 1) Your service sends back a Fault (described in WSDL) and you > can't > >> >>> catch > >> >>> it in your process? > >> >>> > >> >>> 2) Your service sends back a Fault (not in WSDL) and you use > >> >>> "faultOnFailure=true" but you can't catch it in your process? > >> >>> > >> >>> In either case, if you can simplify your setup and attach your > files > >> to > >> >>> a > >> >>> Jira issue we could look into things in detail. > >> >>> > >> >>> alex > >> >>> > >> >>> > >> >> > >> >> It is the first point- I send back a fault and I cannot catch it in > >> >> Ode... and I don´t know why... > >> >> I see that there is an wsdl fault, but Ode does not execute the > fault > >> >> handler for this fault... > >> >> > >> >> > >> > > >> > > >> > >> -- > >> View this message in context: > >> > http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html#a13055706 > >> Sent from the Apache Ode User mailing list archive at Nabble.com. > >> > >> > > > > > > -- > View this message in context: > http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html#a13136987 > Sent from the Apache Ode User mailing list archive at Nabble.com. > >
