ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Goldhammer <Goldhammer.J...@gmx.net>
Subject RE: Access to variable ends in selection failure
Date Wed, 16 Jan 2008 12:53:22 GMT

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:Goldhammer.Jens@gmx.net] 
> Sent: Tuesday, January 15, 2008 12:32 PM
> To: user@ode.apache.org
> 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:Goldhammer.Jens@gmx.net] 
>> Sent: Tuesday, January 15, 2008 7:09 AM
>> To: user@ode.apache.org
>> 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),
>> linkframe=org.apache.ode.bpel.runtime.LinkFrame@55a6ce,
>> 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),
>> linkframe=org.apache.ode.bpel.runtime.LinkFrame@55a6ce,
>> 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.


Mime
View raw message