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 >> 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. > > > -- 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.
