Hi Doug,
I don´t really understand your question. What is meant by prefix?
I can show you the definition of element faultCode:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        xmlns="http://cis.de.ibm.com/simpleTypes";
        targetNamespace="http://cis.de.ibm.com/simpleTypes";>
<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:schema>

The element is referenced by another schema:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        xmlns="http://cis.log.interface.de.ibm.com/types";
        xmlns:types="http://cis.de.ibm.com/simpleTypes";
        targetNamespace="http://cis.log.interface.de.ibm.com/types";>
        <xsd:element name="LogFault">
                <xsd:complexType>
                        <xsd:sequence>
                                <xsd:element 
ref="types:faultCode"></xsd:element>
                                <xsd:element 
ref="types:faultString"></xsd:element>
                                <xsd:element 
ref="types:faultActor"></xsd:element>
                                <xsd:element 
ref="types:faultDetail"></xsd:element>
                        </xsd:sequence>
                </xsd:complexType>
        </xsd:element>
</xsd:schema>

I have defined a wsdl message element where the elemement logFault is
referenced and the operation which uses the logFaultException-message.

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
        xmlns:tns="http://cis.log.interface.de.ibm.com/service";
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
        xmlns:types="http://cis.log.interface.de.ibm.com/types";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        targetNamespace="http://cis.log.interface.de.ibm.com/service";>
<!--...-->
        <wsdl:message name="logFaultException">
                <wsdl:part name="logFaultException" 
element="types:LogFault"></wsdl:part>
        </wsdl:message>
<!--...-->
        <wsdl:operation name="logRun">
                <wsdl:input message="tns:logRunRequest" />
                <wsdl:output message="tns:logRunResponse" />
                <wsdl:fault name="fault" message="tns:logFaultException" />
        </wsdl:operation>
</wsdl:definitions>

The variable and faulthandler in the bpel process definition looks like:

<bpws:process exitOnStandardFault="yes" name="cisFaultHandlerTest"
    suppressJoinFailure="yes"
    targetNamespace="http://com.ibm.de.cis.faulthandler";
    xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable";
    xmlns:ns="http://com.ibm.de.cis.faulthandlerArtifacts";
    xmlns:ns0="http://cis.log.interface.de.ibm.com/service";
    xmlns:tns="http://com.ibm.de.cis.faulthandler";
xmlns:xsd="http://cis.de.ibm.com/simpleTypes";>
    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
        location="cisLogService.wsdl"
namespace="http://cis.log.interface.de.ibm.com/service"/>
<bpws:variable messageType="ns0:logFaultException" name="cisLogFault"/>
<bpws:invoke inputVariable="cisLogRunRequestVO" name="Invoke"
            operation="logRun" outputVariable="cisLogRunResponseVO"
            partnerLink="cisLogPT" portType="ns0:cisLogInterface">
            <bpws:catch faultMessageType="ns0:logFaultException"
                faultName="ns0:fault" faultVariable="cisLogFault">
                <bpws:sequence>
                    <bpws:assign name="Assign1" validate="no">
                       <bpws:copy>
                            <bpws:from
xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";><![CDATA[$cisLogFault.logFaultException/xsd:faultString]]></bpws:from>
                            <bpws:to
xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";><![CDATA[$output.payload/tns:result]]></bpws:to>
                        </bpws:copy>
                    </bpws:assign>
                    <bpws:reply name="ReplyOutput" operation="process"
                        partnerLink="client"
                        portType="tns:cisFaultHandlerTest"
variable="output"/>
                    <bpws:exit name="TerminateProcess"/>
                </bpws:sequence>
            </bpws:catch>
        </bpws:invoke>

For the complete test-process (import into eclipse) look at the attachment
at https://issues.apache.org/jira/browse/ODE-194.
In my eyes, it looks fine. 

Thanks for your help.
Jens


Jackson, Douglas wrote:
> 
> Hi!
> Does the declaration of the prefix for xsd:faultString from the xpath
> match the declaration of the prefix types: from <xsd:element
> ref="types:faultString"/>?
> -Doug.
> 
> 
> 
> 
> -----Original Message-----
> From: Jens Goldhammer [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, January 15, 2008 7:09 AM
> To: [email protected]
> Subject: Access to variable ends in selection failure
> 
> 
> 
> Hello,
> 
> I try to get an access to a fault which is thrown by a service and catched
> by a faulthandler inside a process.
> 
> I tried to access the variable faultString inside the faulthandler
> 
> <bpws:copy><bpws:from
> xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";><![CDATA[$cisLogFault.logFaultException/xsd:faultString]]></bpws:from>
>                             <bpws:to
> xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";><![CDATA[$output.payload/tns:result]]></bpws:to>
>                         </bpws:copy>
> 
> and get this error message:
> 
> 13:52:44,529 ERROR [ASSIGN] Assignment Fault:
> {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=66,faultExplanation=No
> results for expression: {OXPath10Expression /xsd:faultString}
> 
> 
> cisLogFault is specified as:
> 
> <wsdl:message name="logFaultException">
>               <wsdl:part name="logFaultException" element="types:LogFault">
>               </wsdl:part>
> </wsdl:message>
> 
>  <xsd:element name="LogFault">
>         <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>
> 
> The elements faultCode etc. are specified as built-in Strings.
> 
> log-file with the fault response of the service and the selection failure:
> 
> DEBUG - GeronimoLog.debug(66) | Found a header in incoming message,
> checking
> if there are endpoints there.
> 14:05:25,123 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:hqejbhcnphr2wmxnnd6h1s</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";><s19:faultCode
> xmlns:s19="http://cis.de.ibm.com/simpleTypes";>LOGEX002</s19:faultCode><s20:faultString
> xmlns:s20="http://cis.de.ibm.com/simpleTypes";>Database for LogService not
> available.</s20:faultString><s21:faultActor
> xmlns:s21="http://cis.de.ibm.com/simpleTypes";>logRun</s21:faultActor><s22:faultDetail
> xmlns:s22="http://cis.de.ibm.com/simpleTypes";>no
> stacktrace.</s22:faultDetail></ns2:LogFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> 14:05:25,123 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:hqejbhcnphr2wmxnnd6h1s</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";><s19:faultCode
> xmlns:s19="http://cis.de.ibm.com/simpleTypes";>LOGEX002</s19:faultCode><s20:faultString
> xmlns:s20="http://cis.de.ibm.com/simpleTypes";>Database for LogService not
> available.</s20:faultString><s21:faultActor
> xmlns:s21="http://cis.de.ibm.com/simpleTypes";>logRun</s21:faultActor><s22:faultDetail
> xmlns:s22="http://cis.de.ibm.com/simpleTypes";>no
> stacktrace.</s22: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
> 14:05:25,173 DEBUG [ExternalService] Reply is a fault, found type:
> {http://cis.log.interface.de.ibm.com/service}fault
> DEBUG - GeronimoLog.trace(54) | Mex[hqejbhcnphr2wmxnnd6h1r].setPortOp(...)
> 14:05:25,173 DEBUG [MessageExchangeImpl]
> Mex[hqejbhcnphr2wmxnnd6h1r].setPortOp(...)
> DEBUG - GeronimoLog.debug(66) | Received response for MEX
> {PartnerRoleMex#hqejbhcnphr2wmxnnd6h1r [PID
> {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-4] calling
> null.logRun(...)}
> 14:05:25,173 DEBUG [ExternalService] Received response for MEX
> {PartnerRoleMex#hqejbhcnphr2wmxnnd6h1r [PID
> {http://com.ibm.de.cis.faulthandler}cisFaultHandlerTest-4] calling
> null.logRun(...)}
> DEBUG - GeronimoLog.debug(66) | FAULT
> RESPONSE({http://cis.log.interface.de.ibm.com/service}fault): <?xml
> version="1.0" encoding="UTF-8"?>
> <message><logFaultException><detail
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:wsa="http://www.w3.org/2005/08/addressing";><LogFault
> xmlns="http://cis.log.interface.de.ibm.com/types";
> xmlns:ns2="http://cis.log.interface.de.ibm.com/types";><faultCode
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s19="http://cis.de.ibm.com/simpleTypes";>LOGEX002</faultCode><faultString
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s20="http://cis.de.ibm.com/simpleTypes";>Database for LogService not
> available.</faultString><faultActor
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s21="http://cis.de.ibm.com/simpleTypes";>logRun</faultActor><faultDetail
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s22="http://cis.de.ibm.com/simpleTypes";>no
> stacktrace.</faultDetail></LogFault></detail></logFaultException></message>
> 14:05:25,173 DEBUG [ExternalService] FAULT
> RESPONSE({http://cis.log.interface.de.ibm.com/service}fault): <?xml
> version="1.0" encoding="UTF-8"?>
> <message><logFaultException><detail
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:wsa="http://www.w3.org/2005/08/addressing";><LogFault
> xmlns="http://cis.log.interface.de.ibm.com/types";
> xmlns:ns2="http://cis.log.interface.de.ibm.com/types";><faultCode
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s19="http://cis.de.ibm.com/simpleTypes";>LOGEX002</faultCode><faultString
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s20="http://cis.de.ibm.com/simpleTypes";>Database for LogService not
> available.</faultString><faultActor
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s21="http://cis.de.ibm.com/simpleTypes";>logRun</faultActor><faultDetail
> xmlns="http://cis.de.ibm.com/simpleTypes";
> xmlns:s22="http://cis.de.ibm.com/simpleTypes";>no
> stacktrace.</faultDetail></LogFault></detail></logFaultException></message>
> DEBUG - GeronimoLog.debug(66) | replyWithFault mex=hqejbhcnphr2wmxnnd6h1r
> 14:05:25,173 DEBUG [PartnerRoleMessageExchangeImpl] replyWithFault
> mex=hqejbhcnphr2wmxnnd6h1r
> DEBUG - GeronimoLog.debug(66) | create work event for
> mex=hqejbhcnphr2wmxnnd6h1r
> 14:05:25,183 DEBUG [PartnerRoleMessageExchangeImpl] create work event for
> mex=hqejbhcnphr2wmxnnd6h1r
> DEBUG - GeronimoLog.debug(66) | Thread[pool-2-thread-6,5,main]:
> lock(iid=204, time=1MICROSECONDS)
> 14:05:25,203 DEBUG [InstanceLockManager] Thread[pool-2-thread-6,5,main]:
> lock(iid=204, time=1MICROSECONDS)
> DEBUG - GeronimoLog.debug(66) | Thread[pool-2-thread-6,5,main]:
> lock(iid=204, time=1MICROSECONDS)-->GRANTED
> 14:05:25,203 DEBUG [InstanceLockManager] Thread[pool-2-thread-6,5,main]:
> lock(iid=204, time=1MICROSECONDS)-->GRANTED
> DEBUG - GeronimoLog.debug(66) | >>
> handleWorkEvent(jobData={type=INVOKE_RESPONSE,
> mexid=hqejbhcnphr2wmxnnd6h1r,
> channel=20, iid=204})
> 14:05:25,203 DEBUG [BpelProcess] >>
> handleWorkEvent(jobData={type=INVOKE_RESPONSE,
> mexid=hqejbhcnphr2wmxnnd6h1r,
> channel=20, iid=204})
> DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for
> instance
> 204. INDEXED STATE={{OScope 'Invoke' id=41}::10=[ACTIVE(...)],
> OSequence#26-main::1=[ACTIVITYGUARD(...)], {OScope 'Invoke'
> id=41}::10=[SCOPE(...)], OInvoke#42-Invoke::12=[INVOKE(...)], {OScope
> 'Invoke' id=41}::9=[ACTIVITYGUARD(...)],
> OInvoke#42-Invoke::11=[ACTIVITYGUARD(...)], {OScope
> '__PROCESS_SCOPE:cisFaultHandlerTest' id=3}::0=[ACTIVE(...)],
> OSequence#26-main::2=[SEQUENCE(self=(OSequence#26-main,TerminationChannel#3,ParentScopeChannel#5),
> [EMAIL PROTECTED], remaining=[{OScope
> 'Invoke' id=41}, {OAssign : Assign1, joinCondition=null},
> OReply#73-replyOutput])], {OScope '__PROCESS_SCOPE:cisFaultHandlerTest'
> id=3}::0=[SCOPE(...)]}
> 14:05:25,293 DEBUG [BpelRuntimeContextImpl] BpelRuntimeContextImpl created
> for instance 204. INDEXED STATE={{OScope 'Invoke'
> id=41}::10=[ACTIVE(...)],
> OSequence#26-main::1=[ACTIVITYGUARD(...)], {OScope 'Invoke'
> id=41}::10=[SCOPE(...)], OInvoke#42-Invoke::12=[INVOKE(...)], {OScope
> 'Invoke' id=41}::9=[ACTIVITYGUARD(...)],
> OInvoke#42-Invoke::11=[ACTIVITYGUARD(...)], {OScope
> '__PROCESS_SCOPE:cisFaultHandlerTest' id=3}::0=[ACTIVE(...)],
> OSequence#26-main::2=[SEQUENCE(self=(OSequence#26-main,TerminationChannel#3,ParentScopeChannel#5),
> [EMAIL PROTECTED], remaining=[{OScope
> 'Invoke' id=41}, {OAssign : Assign1, joinCondition=null},
> OReply#73-replyOutput])], {OScope '__PROCESS_SCOPE:cisFaultHandlerTest'
> id=3}::0=[SCOPE(...)]}
> DEBUG - GeronimoLog.debug(66) | InvokeResponse event for iid 204
> 14:05:25,293 DEBUG [BpelProcess] InvokeResponse event for iid 204
> DEBUG - GeronimoLog.debug(66) | Invoking message response for mexid
> hqejbhcnphr2wmxnnd6h1r and channel 20
> 14:05:25,293 DEBUG [BpelRuntimeContextImpl] Invoking message response for
> mexid hqejbhcnphr2wmxnnd6h1r and channel 20
> DEBUG - GeronimoLog.debug(66) | Triggering response
> 14:05:25,293 DEBUG [BpelRuntimeContextImpl] Triggering response
> DEBUG - GeronimoLog.trace(54) | >>
> createScopeInstance(parentScopeId=264,scope={OCatch
> faultName={http://cis.log.interface.de.ibm.com/service}fault,
> faultVariable={Variable __catch#0:Invoke.cisLogFault:OMessageVarType#22}})
> 14:05:25,303 DEBUG [BpelProcess] >>
> createScopeInstance(parentScopeId=264,scope={OCatch
> faultName={http://cis.log.interface.de.ibm.com/service}fault,
> faultVariable={Variable __catch#0:Invoke.cisLogFault:OMessageVarType#22}})
> DEBUG - GeronimoLog.trace(54) | >>
> initializeEndpointReferences(parentScopeId=265,partnerLinks=[])
> 14:05:25,313 DEBUG [BpelProcess] >>
> initializeEndpointReferences(parentScopeId=265,partnerLinks=[])
> ERROR - GeronimoLog.error(104) | Assignment Fault:
> {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=66,faultExplanation=Unknown
> variable cisLogFault.logFaultException
> 14:05:25,333 ERROR [ASSIGN] Assignment Fault:
> {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=66,faultExplanation=Unknown
> variable cisLogFault.logFaultException
> 
> What´s the problem? Has anybody an idea?
> 
> Regards,
> Jens
> 
> -- 
> View this message in context:
> http://www.nabble.com/Access-to-variable-ends-in-selection-failure-tp14839374p14839374.html
> Sent from the Apache Ode User mailing list archive at Nabble.com.
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Access-to-variable-ends-in-selection-failure-tp14839374p14844216.html
Sent from the Apache Ode User mailing list archive at Nabble.com.

Reply via email to