Hi Jens, Your expression $cisLogFault.logFaultException/xsd:faultString is using the xsd prefix associated with the http://cis.de.ibm.com/simpleTypes namespace. But in your schema definition, the faultString *element* (which is what matters, not its type) is defined in the http://cis.log.interface.de.ibm.com/types namespace. That's most probably the origin of your selectionFailure.
Cheers, Matthieu On Jan 16, 2008 4:53 AM, Jens Goldhammer <[EMAIL PROTECTED]> wrote: > > Hello, > > I have changed the namespace to stypes, but the problem is still there. I > think, it is a problem of ODE fault handling. Maybe I raise a JIRA entry > or > should I reopen the old one?? > > Thanks in advance, > regards, > Jens > > > > > Jackson, Douglas wrote: > > > > Hi! > > > > I see that you have declared the prefix correctly. I cannot see a > problem > > with the process. > > > > You are referencing the fault variable as follows: > > > > $cisLogFault.logFaultException/xsd:faultString > > > > The cisLogFault is the variable, the logFaultException is the part, and > > the /xsd:faultString is the xpath query expression. "xsd:" is referred > to > > as a > > Namespace prefix and must be declared in the process xml as > > xmlns:xsd="http://cis.de.ibm.com/simpleTypes" in your case. > > > > Frequently xsd is used as a prefix for "http://www.w3.org/2001/XMLSchema > " > > like you did in your wsdl, so personally I would not use that for the > > simpleTypes namespace. > > > > -Doug. > > > > > > > > -----Original Message----- > > From: Jens Goldhammer [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, January 15, 2008 12:32 PM > > To: [email protected] > > Subject: RE: Access to variable ends in selection failure > > > > > > 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<http://docs.oasis-open.org/wsbpel/2.0/process/executable%7DselectionFailure,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<http://cis.log.interface.de.ibm.com/service%7Dfault> > >> 14:05:25,173 DEBUG [ExternalService] Reply is a fault, found type: > >> {http://cis.log.interface.de.ibm.com/service}fault<http://cis.log.interface.de.ibm.com/service%7Dfault> > >> 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<http://com.ibm.de.cis.faulthandler%7DcisFaultHandlerTest-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<http://com.ibm.de.cis.faulthandler%7DcisFaultHandlerTest-4>] > calling > >> null.logRun(...)} > >> DEBUG - GeronimoLog.debug(66) | FAULT > >> RESPONSE({http://cis.log.interface.de.ibm.com/service}fault<http://cis.log.interface.de.ibm.com/service%7Dfault>): > <?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<http://cis.log.interface.de.ibm.com/service%7Dfault>): > <?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<http://cis.log.interface.de.ibm.com/service%7Dfault> > , > >> 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<http://cis.log.interface.de.ibm.com/service%7Dfault> > , > >> 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<http://docs.oasis-open.org/wsbpel/2.0/process/executable%7DselectionFailure,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<http://docs.oasis-open.org/wsbpel/2.0/process/executable%7DselectionFailure,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. > > > > > > > > -- > View this message in context: > http://www.nabble.com/Access-to-variable-ends-in-selection-failure-tp14839374p14879796.html > Sent from the Apache Ode User mailing list archive at Nabble.com. > >
