You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Jens Goldhammer (JIRA)" <ji...@apache.org> on 2007/10/05 10:46:50 UTC

[jira] Created: (ODE-194) Ode cannot handle own defined wsdl faults

Ode cannot handle own defined wsdl faults
-----------------------------------------

                 Key: ODE-194
                 URL: https://issues.apache.org/jira/browse/ODE-194
             Project: ODE
          Issue Type: Bug
          Components: Axis2 Integration
    Affects Versions: 1.1
         Environment: Windows XP SP2
Tomcat 5.5.23
Ode 1.1
            Reporter: Jens Goldhammer
            Priority: Critical
             Fix For: 1.1.1
         Attachments: cisTest2.zip

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.CisLogServiceStub stub = 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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(...) 

For more details are avialable, see http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (ODE-194) Ode cannot handle own defined wsdl faults

Posted by "Jens Goldhammer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jens Goldhammer reopened ODE-194:
---------------------------------


I have updated the sources of Ode, build the war-file and install it on Tomcat.
The process does not hang on the same problem as before, but there is already an error.

stacktrace of Ode:

DEBUG - GeronimoLog.debug(66) | Sending stateful TO epr in message header using session null
10:54:45,893 DEBUG [SessionOutHandler] Sending stateful TO epr in message header using session null
DEBUG - GeronimoLog.debug(66) | Sending a message containing wsa endpoints in headers for session passing.
10:54:45,893 DEBUG [SessionOutHandler] Sending a message containing wsa endpoints in headers for session passing.
DEBUG - GeronimoLog.debug(66) | <?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:hqejbhcnphr2nkunp5bc6g</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" xmlns="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:54:45,903 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:hqejbhcnphr2nkunp5bc6g</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" xmlns="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:54:47,005 DEBUG [SessionInHandler] Found a header in incoming message, checking if there are endpoints there.
DEBUG - GeronimoLog.debug(66) | Got service response: <?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>urn:logRunlogFaultException</wsa:Action><wsa:RelatesTo>uuid:hqejbhcnphr2nkunp5bc6g</wsa:RelatesTo></soapenv:Header><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>LogFaultException</faultstring><detail><ns2:LogFault xmlns:ns2="http://cis.log.interface.de.ibm.com/types"><s9:faultCode xmlns:s9="http://cis.de.ibm.com/simpleTypes">LOGEX002</s9:faultCode><s10:faultString xmlns:s10="http://cis.de.ibm.com/simpleTypes">Database for LogService not available.</s10:faultString><s11:faultActor xmlns:s11="http://cis.de.ibm.com/simpleTypes">logRun</s11:faultActor><s12:faultDetail xmlns:s12="http://cis.de.ibm.com/simpleTypes">no stacktrace.</s12:faultDetail></ns2:LogFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
10:54:47,005 DEBUG [ExternalService] Got service response: <?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>urn:logRunlogFaultException</wsa:Action><wsa:RelatesTo>uuid:hqejbhcnphr2nkunp5bc6g</wsa:RelatesTo></soapenv:Header><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>LogFaultException</faultstring><detail><ns2:LogFault xmlns:ns2="http://cis.log.interface.de.ibm.com/types"><s9:faultCode xmlns:s9="http://cis.de.ibm.com/simpleTypes">LOGEX002</s9:faultCode><s10:faultString xmlns:s10="http://cis.de.ibm.com/simpleTypes">Database for LogService not available.</s10:faultString><s11:faultActor xmlns:s11="http://cis.de.ibm.com/simpleTypes">logRun</s11:faultActor><s12:faultDetail xmlns:s12="http://cis.de.ibm.com/simpleTypes">no stacktrace.</s12:faultDetail></ns2:LogFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
DEBUG - GeronimoLog.debug(66) | Reply is a fault, found type: {http://cis.log.interface.de.ibm.com/service}fault
10:54:47,155 DEBUG [ExternalService] Reply is a fault, found type: {http://cis.log.interface.de.ibm.com/service}fault
FATAL - GeronimoLog.fatal(120) | Internal Error
java.lang.NullPointerException
	at org.apache.ode.bpel.engine.PartnerLinkPartnerRoleImpl.createPartnerRoleMex(PartnerLinkPartnerRoleImpl.java:66)
	at org.apache.ode.bpel.engine.BpelProcess.createPartnerRoleMex(BpelProcess.java:889)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:578)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:555)
	at org.apache.ode.bpel.engine.Contexts.execTransaction(Contexts.java:105)
	at org.apache.ode.bpel.engine.BpelServerImpl$TransactedCallable.call(BpelServerImpl.java:833)
	at org.apache.ode.bpel.engine.BpelServerImpl$ServerCallable.call(BpelServerImpl.java:811)
	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:54:47,175 FATAL [BpelServerImpl] Internal Error
java.lang.NullPointerException
	at org.apache.ode.bpel.engine.PartnerLinkPartnerRoleImpl.createPartnerRoleMex(PartnerLinkPartnerRoleImpl.java:66)
	at org.apache.ode.bpel.engine.BpelProcess.createPartnerRoleMex(BpelProcess.java:889)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:578)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:555)
	at org.apache.ode.bpel.engine.Contexts.execTransaction(Contexts.java:105)
	at org.apache.ode.bpel.engine.BpelServerImpl$TransactedCallable.call(BpelServerImpl.java:833)
	at org.apache.ode.bpel.engine.BpelServerImpl$ServerCallable.call(BpelServerImpl.java:811)
	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)
ERROR - GeronimoLog.error(108) | Error executing reply transaction; reply will be lost.
org.apache.ode.bpel.iapi.BpelEngineException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at org.apache.ode.bpel.engine.BpelServerImpl.getMessageExchange(BpelServerImpl.java:597)
	at org.apache.ode.axis2.ExternalService.reply(ExternalService.java:288)
	at org.apache.ode.axis2.ExternalService.invoke(ExternalService.java:149)
	at org.apache.ode.axis2.MessageExchangeContextImpl.invokePartnerUnreliable(MessageExchangeContextImpl.java:67)
	at org.apache.ode.bpel.engine.PartnerLinkPartnerRoleImpl$UnreliableInvoker.run(PartnerLinkPartnerRoleImpl.java:339)
	at org.apache.ode.bpel.engine.BpelProcess$ProcessRunnable.run(BpelProcess.java:1109)
	at org.apache.ode.bpel.engine.BpelServerImpl$ServerRunnable.run(BpelServerImpl.java:786)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
	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: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205)
	at java.util.concurrent.FutureTask.get(FutureTask.java:80)
	at org.apache.ode.bpel.engine.BpelServerImpl.getMessageExchange(BpelServerImpl.java:593)
	... 12 more
Caused by: java.lang.NullPointerException
	at org.apache.ode.bpel.engine.PartnerLinkPartnerRoleImpl.createPartnerRoleMex(PartnerLinkPartnerRoleImpl.java:66)
	at org.apache.ode.bpel.engine.BpelProcess.createPartnerRoleMex(BpelProcess.java:889)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:578)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:555)
	at org.apache.ode.bpel.engine.Contexts.execTransaction(Contexts.java:105)
	at org.apache.ode.bpel.engine.BpelServerImpl$TransactedCallable.call(BpelServerImpl.java:833)
	at org.apache.ode.bpel.engine.BpelServerImpl$ServerCallable.call(BpelServerImpl.java:811)
	... 5 more
10:54:47,175 ERROR [ExternalService] Error executing reply transaction; reply will be lost.
org.apache.ode.bpel.iapi.BpelEngineException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at org.apache.ode.bpel.engine.BpelServerImpl.getMessageExchange(BpelServerImpl.java:597)
	at org.apache.ode.axis2.ExternalService.reply(ExternalService.java:288)
	at org.apache.ode.axis2.ExternalService.invoke(ExternalService.java:149)
	at org.apache.ode.axis2.MessageExchangeContextImpl.invokePartnerUnreliable(MessageExchangeContextImpl.java:67)
	at org.apache.ode.bpel.engine.PartnerLinkPartnerRoleImpl$UnreliableInvoker.run(PartnerLinkPartnerRoleImpl.java:339)
	at org.apache.ode.bpel.engine.BpelProcess$ProcessRunnable.run(BpelProcess.java:1109)
	at org.apache.ode.bpel.engine.BpelServerImpl$ServerRunnable.run(BpelServerImpl.java:786)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
	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: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205)
	at java.util.concurrent.FutureTask.get(FutureTask.java:80)
	at org.apache.ode.bpel.engine.BpelServerImpl.getMessageExchange(BpelServerImpl.java:593)
	... 12 more
Caused by: java.lang.NullPointerException
	at org.apache.ode.bpel.engine.PartnerLinkPartnerRoleImpl.createPartnerRoleMex(PartnerLinkPartnerRoleImpl.java:66)
	at org.apache.ode.bpel.engine.BpelProcess.createPartnerRoleMex(BpelProcess.java:889)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:578)
	at org.apache.ode.bpel.engine.BpelServerImpl$3.call(BpelServerImpl.java:555)
	at org.apache.ode.bpel.engine.Contexts.execTransaction(Contexts.java:105)
	at org.apache.ode.bpel.engine.BpelServerImpl$TransactedCallable.call(BpelServerImpl.java:833)
	at org.apache.ode.bpel.engine.BpelServerImpl$ServerCallable.call(BpelServerImpl.java:811)
	... 5 more
DEBUG - GeronimoLog.debug(66) | enqueue: for instance {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123: org.apache.ode.bpel.engine.BpelServerImpl$TransactedRunnable@1f4d85b
10:54:47,185 DEBUG [BpelInstanceWorker] enqueue: for instance {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123: org.apache.ode.bpel.engine.BpelServerImpl$TransactedRunnable@1f4d85b
DEBUG - GeronimoLog.debug(66) | enqueuRunnable for process {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7: {BpelInstanceWorker for {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123}
10:54:47,185 DEBUG [BpelProcess] enqueuRunnable for process {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7: {BpelInstanceWorker for {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123}
DEBUG - GeronimoLog.debug(66) | Starting worker thread Thread[pool-2-thread-5,5,main] for instance IID {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123
10:54:47,215 DEBUG [BpelInstanceWorker] Starting worker thread Thread[pool-2-thread-5,5,main] for instance IID {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123
DEBUG - GeronimoLog.debug(66) | Doing work for instance {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123 in thread Thread[pool-2-thread-5,5,main]
10:54:47,215 DEBUG [BpelInstanceWorker] Doing work for instance {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123 in thread Thread[pool-2-thread-5,5,main]
DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for instance 123. INDEXED STATE={}
10:54:47,225 DEBUG [BpelRuntimeContextImpl] BpelRuntimeContextImpl created for instance 123. INDEXED STATE={}
DEBUG - GeronimoLog.debug(66) | CACHE HIT: Using cached state #1 to resume instance 123
10:54:47,225 DEBUG [BpelRuntimeContextImpl] CACHE HIT: Using cached state #1 to resume instance 123
DEBUG - GeronimoLog.debug(66) | <invoke> response for mexid hqejbhcnphr2nkunp5bc6f and channel 25
10:54:47,225 DEBUG [BpelRuntimeContextImpl] <invoke> response for mexid hqejbhcnphr2nkunp5bc6f and channel 25
DEBUG - GeronimoLog.debug(66) | Triggering response
10:54:47,225 DEBUG [BpelRuntimeContextImpl] Triggering response
INFO - GeronimoLog.info(79) | ActivityRecovery: Registering activity 11, failure reason: No Response on channel 26
10:54:47,245 INFO  [BpelRuntimeContextImpl] ActivityRecovery: Registering activity 11, failure reason: No Response on channel 26
DEBUG - GeronimoLog.debug(66) | CACHE SAVE: #2 for instance 123
10:54:47,265 DEBUG [BpelRuntimeContextImpl] CACHE SAVE: #2 for instance 123
DEBUG - GeronimoLog.debug(66) | Finished work for instance {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123 in thread Thread[pool-2-thread-5,5,main]
10:54:47,285 DEBUG [BpelInstanceWorker] Finished work for instance {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-7#123 in thread Thread[pool-2-thread-5,5,main]
DEBUG - GeronimoLog.debug(66) | Worker thread Thread[pool-2-thread-5,5,main] for instance IID 123 ran out of work. 
10:54:47,285 DEBUG [BpelInstanceWorker] Worker thread Thread[pool-2-thread-5,5,main] for instance IID 123 ran out of work. 
ERROR - GeronimoLog.error(104) | Call to {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTestSOAPService.process timed out.
10:55:15,516 ERROR [ODEService] Call to {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTestSOAPService.process timed out.
ERROR - GeronimoLog.error(108) | Call to {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTestSOAPService.process caused an exception.
org.apache.ode.axis2.OdeFault: Call to {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTestSOAPService.process timed out.
	at org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:119)
	at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:69)
	at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50)
	at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
10:55:15,516 ERROR [ODEService] Call to {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTestSOAPService.process caused an exception.
org.apache.ode.axis2.OdeFault: Call to {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTestSOAPService.process timed out.
	at org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:119)
	at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:69)
	at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50)
	at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
DEBUG - GeronimoLog.debug(66) | Releasing mex hqejbhcnphr2nkunp5bc6d
10:55:15,516 DEBUG [MessageExchangeImpl] Releasing mex hqejbhcnphr2nkunp5bc6d

Thanks for your help. Maybe we can provide a bpel testcase for it?

> Ode cannot handle own defined wsdl faults
> -----------------------------------------
>
>                 Key: ODE-194
>                 URL: https://issues.apache.org/jira/browse/ODE-194
>             Project: ODE
>          Issue Type: Bug
>          Components: Axis2 Integration
>    Affects Versions: 1.1
>         Environment: Windows XP SP2
> Tomcat 5.5.23
> Ode 1.1
>            Reporter: Jens Goldhammer
>            Assignee: Matthieu Riou
>            Priority: Critical
>             Fix For: 1.1.1
>
>         Attachments: cisTest2.zip
>
>
> 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.CisLogServiceStub stub = 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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(...) 
> For more details are avialable, see http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ODE-194) Ode cannot handle own defined wsdl faults

Posted by "Jens Goldhammer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jens Goldhammer updated ODE-194:
--------------------------------

    Attachment: cisTest2.zip

> Ode cannot handle own defined wsdl faults
> -----------------------------------------
>
>                 Key: ODE-194
>                 URL: https://issues.apache.org/jira/browse/ODE-194
>             Project: ODE
>          Issue Type: Bug
>          Components: Axis2 Integration
>    Affects Versions: 1.1
>         Environment: Windows XP SP2
> Tomcat 5.5.23
> Ode 1.1
>            Reporter: Jens Goldhammer
>            Priority: Critical
>             Fix For: 1.1.1
>
>         Attachments: cisTest2.zip
>
>
> 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.CisLogServiceStub stub = 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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(...) 
> For more details are avialable, see http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (ODE-194) Ode cannot handle own defined wsdl faults

Posted by "Matthieu Riou (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthieu Riou resolved ODE-194.
-------------------------------

    Resolution: Fixed
      Assignee: Matthieu Riou

Should be fixed both in the 1.1 branch and in the trunk. Please give it a try and let me know how it goes.

> Ode cannot handle own defined wsdl faults
> -----------------------------------------
>
>                 Key: ODE-194
>                 URL: https://issues.apache.org/jira/browse/ODE-194
>             Project: ODE
>          Issue Type: Bug
>          Components: Axis2 Integration
>    Affects Versions: 1.1
>         Environment: Windows XP SP2
> Tomcat 5.5.23
> Ode 1.1
>            Reporter: Jens Goldhammer
>            Assignee: Matthieu Riou
>            Priority: Critical
>             Fix For: 1.1.1
>
>         Attachments: cisTest2.zip
>
>
> 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.CisLogServiceStub stub = 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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(...) 
> For more details are avialable, see http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ODE-194) Ode cannot handle own defined wsdl faults

Posted by "Matthieu Riou (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ODE-194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533745 ] 

Matthieu Riou commented on ODE-194:
-----------------------------------

Did you update using the trunk or the 1.1 stable branch? The trunk is much more unstable and not completely tested, please use:

http://svn.apache.org/repos/asf/ode/branches/APACHE_ODE_1.1/

> Ode cannot handle own defined wsdl faults
> -----------------------------------------
>
>                 Key: ODE-194
>                 URL: https://issues.apache.org/jira/browse/ODE-194
>             Project: ODE
>          Issue Type: Bug
>          Components: Axis2 Integration
>    Affects Versions: 1.1
>         Environment: Windows XP SP2
> Tomcat 5.5.23
> Ode 1.1
>            Reporter: Jens Goldhammer
>            Assignee: Matthieu Riou
>            Priority: Critical
>             Fix For: 1.1.1
>
>         Attachments: cisTest2.zip
>
>
> 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.CisLogServiceStub stub = 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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(...) 
> For more details are avialable, see http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (ODE-194) Ode cannot handle own defined wsdl faults

Posted by "Matthieu Riou (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthieu Riou resolved ODE-194.
-------------------------------

    Resolution: Fixed

AFAIU it's fixed.

> Ode cannot handle own defined wsdl faults
> -----------------------------------------
>
>                 Key: ODE-194
>                 URL: https://issues.apache.org/jira/browse/ODE-194
>             Project: ODE
>          Issue Type: Bug
>          Components: Axis2 Integration
>    Affects Versions: 1.1
>         Environment: Windows XP SP2
> Tomcat 5.5.23
> Ode 1.1
>            Reporter: Jens Goldhammer
>            Assignee: Matthieu Riou
>            Priority: Critical
>             Fix For: 1.2
>
>         Attachments: cisTest2.zip
>
>
> 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.CisLogServiceStub stub = 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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 org.apache.ode.bpel.epr.URLEndpoint@c88805.logRun(...)}): 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(...) 
> For more details are avialable, see http://www.nabble.com/Error-handling-in-bpel-processes-tf4555881.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.