You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by "ytrewq2002@libero.it" <yt...@libero.it> on 2009/09/17 16:27:20 UTC
fault selection error (variable intialization problem)
hi to all,
i have a problem.. i try to exec a bpel process into Ode. I deploy
it into ode then i invoke it sending the soap with the soap utility into bin
directory of ode distribution, or with a jax-ws client. I dvelop using netbeans
than i copy bpel, wsdl, xsd and deploy.xml files into process directory. The
bpel is a receive and reply: receive a string and reply with the same.
During
the replay i have to copy from input variable of receive statment to output var
of reply (because variable are complextype [SOAP message type] i copy the
simple elements
of them with XPATH) but i get fault selection problem.
My
error fault is (i set the debug level in log4j properties
#line added
log4j.
category.org.apache.ode=DEBUG):
15:49:48,318 INFO [ASSIGN] Assignment Fault:
{http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,
lineNo=22,faultExplanation=No results for expression: {OXPath10Expression $Out.
parameters/return}
15:49:48,350 DEBUG [SCOPE] ({OScope '__PROCESS_SCOPE:
BpelHello' id=3},TerminationChannel#1,ParentScopeChannel#2): has a fault
handler for {http://docs.oasis-open.org/wsbpel/2.0/process/executable}
selectionFailure: {OCatch faultName=null, faultVariable=null}
15:49:48,381
DEBUG [SCOPE] ({OCatch faultName=null, faultVariable=null},TerminationChannel:
FH#14,ParentScopeChannel:FH#15): has no fault handler for {http://docs.oasis-
open.org/wsbpel/2.0/process/executable}selectionFailure; scope will propagate
FAULT!
15:49:48,459 DEBUG [BpelProcess] ProcessImpl completed with fault '{http:
//docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure'
15:49:
48,459 DEBUG [MessageExchangeContextImpl] Processing an async reply from
service {http://hello.netbureau.it/}HellonameService
I listed above the bpel
process, wsdl, xsd and deploy.xml files:
-BpelHello.bpel-
<process
name="
BpelHello"
targetNamespace="http://enterprise.netbeans.
org/bpel/BpelHelloWs/BpelHello"
xmlns="http://docs.oasis-open.org/wsbpel/2.
0/process/executable"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sxt="http://www.sun.com/wsbpel/2.
0/process/executable/SUNExtension/Trace"
xmlns:sxed="http://www.sun.
com/wsbpel/2.0/process/executable/SUNExtension/Editor"
xmlns:tns="http:
//enterprise.netbeans.org/bpel/BpelHelloWs/BpelHello" xmlns:ns0="http://hello.
netbureau.it/"
xmlns:myxsd="Helloname.xsd_1.xsd">
<import namespace="
http://hello.netbureau.it/" location="Helloname.wsdl" importType="http:
//schemas.xmlsoap.org/wsdl/"/>
<partnerLinks>
<partnerLink name="
HelloWs" xmlns:tns="http://hello.netbureau.it/" partnerLinkType="tns:Helloname"
myRole="WriteHelloMsgRole"/>
</partnerLinks>
<variables>
<variable name="Out" messageType="ns0:helloResponse"/>
<variable name="
HelloIn" xmlns:tns="http://hello.netbureau.it/" messageType="tns:hello"/>
</variables>
<sequence>
<receive name="ReceiveHelloCmd"
createInstance="yes" partnerLink="HelloWs" operation="hello" xmlns:tns="http:
//hello.netbureau.it/" portType="tns:Helloname" variable="HelloIn"/>
<assign name="Assign1">
<copy insertMissingToData="yes">
<from>$HelloIn.parameters/name</from>
<to>$Out.
parameters/return</to>
</copy>
</assign>
<reply
name="ReplyToHelloCmd" partnerLink="HelloWs" operation="hello" portType="ns0:
Helloname" variable="Out"/>
</sequence>
</process>
-DEPLOY.xml -
<deploy
xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:pns="http:
//enterprise.netbeans.org/bpel/BpelHelloWs/BpelHello"
xmlns:wns="http://hello.
netbureau.it/">
<process name="pns:BpelHello">
<active>true</active>
<provide partnerLink="HelloWs">
<service name="wns:HellonameService" port="
HellonamePort"/>
</provide>
</process>
</deploy>
-Helloname.wsdl-
<?xml
version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI at http://jax-ws.
dev.java.net. RI's version is JAX-WS RI 2.1.4-b01-. --><!-- Generated by JAX-WS
RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.4-b01-. --
><definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="
http://hello.netbureau.it/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="
http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://hello.netbureau.it/"
name="HellonameService" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.
0/plnktype">
<types>
<xsd:schema>
<xsd:import namespace="http://hello.netbureau.
it/" schemaLocation="Helloname.xsd_1.xsd"></xsd:import>
</xsd:schema>
</types>
<message name="hello">
<part name="parameters" element="tns:hello"></part>
</message>
<message name="helloResponse">
<part name="parameters" element="tns:
helloResponse"></part>
</message>
<portType name="Helloname">
<operation name="
hello">
<input message="tns:hello"></input>
<output message="tns:helloResponse"
></output>
</operation>
</portType>
<binding name="HellonamePortBinding" type="
tns:Helloname">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"></soap:binding>
<operation name="hello">
<soap:operation
soapAction=""></soap:operation>
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>
<service name="HellonameService">
<port name="HellonamePort"
binding="tns:HellonamePortBinding">
<!--using with ode -->
<!--soap:address
location="http://localhost:8080/HelloWs/Helloname"></soap:address-->
<soap:
address location="http://localhost:8080/ode/processes/HelloWs"></soap:address>
</port>
</service>
<plnk:partnerLinkType name="Helloname">
<plnk:
role name="WriteHelloMsgRole" portType="tns:Helloname"/>
</plnk:
partnerLinkType>
</definitions>
-Helloname.xsd_1.xsd-
<xs:schema xmlns:tns="
http://hello.netbureau.it/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0" targetNamespace="http://hello.netbureau.it/">
<xs:element name="
hello" type="tns:hello"></xs:element>
<xs:element name="helloResponse" type="
tns:helloResponse"></xs:element>
<xs:complexType name="hello">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"></xs:element>
</xs:
sequence>
</xs:complexType>
<xs:complexType name="helloResponse">
<xs:
sequence>
<xs:element name="return" type="xs:string" minOccurs="0"></xs:
element>
</xs:sequence>
</xs:complexType>
</xs:schema>
In netbeans the bpel
compiler tell me that "insertMissingToData is not allowed appear in element
copy"..but i supposed that the fault problem message and the previous old ones
that are the same of this last, are
about the output variable of reply (Out)
that isn't initialized correctly (Out is a type of soap message that is a
complex type)
So i read specification on : http://ode.apache.org/flexible-
assigns.html and i added insertMissingToData to copy element but the fault
message still remain the same!
i have tried add an explicit assignement
without insertMissingToData in the second copy element :
<copy>
<from><literal>0</literal></from>
<to variable="
Out" part="parameters">
<query>myxsd:return</query>
</to>
</copy>
but i get the same problem:
15:04:
23,192 DEBUG [ASSIGN] Assign.copy({OCopy {VarRef {Variable __PROCESS_SCOPE:
BpelHello.Out:OMessageVarType#6}.parameters{OXPath10Expression myxsd:return}}=
{Literal <?xml version="1.0" encoding="UTF-8"?>
<literal xmlns="http://docs.
oasis-open.org/wsbpel/2.0/process/executable">0</literal>}})
15:04:23,285 DEBUG
[ASSIGN] Evaluating FROM expression "{Literal <?xml version="1.0" encoding="UTF-
8"?>
<literal xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>0</literal>}".
15:04:23,285 DEBUG [ASSIGN] lvalue after eval [message: null]
15:04:23,285 DEBUG [ASSIGN] content <?xml version="1.0" encoding="UTF-8"?>
<message><parameters><helloResponse xmlns="http://hello.netbureau.it/"
/></parameters></message>
15:04:23,348 INFO [ASSIGN] Assignment Fault: {http:
//docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=22,
faultExplanation=No results for expression: {OXPath10Expression myxsd:return}
15:04:23,395 DEBUG [SCOPE] ({OScope '__PROCESS_SCOPE:BpelHello' id=3},
TerminationChannel#1,ParentScopeChannel#2): has a fault handler for {http:
//docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure: {OCatch
faultName=null, faultVariable=null}
15:04:23,410 DEBUG [SCOPE] ({OCatch
faultName=null, faultVariable=null},TerminationChannel:FH#14,ParentScopeChannel:
FH#15): has no fault handler for {http://docs.oasis-open.org/wsbpel/2.
0/process/executable}selectionFailure; scope will propagate FAULT!
15:04:23,504
DEBUG [BpelProcess] ProcessImpl completed with fault '{http://docs.oasis-open.
org/wsbpel/2.0/process/executable}selectionFailure'
someone could help me
please!!!
thank you very much!
Roberto
Re: fault selection error (variable intialization problem)
Posted by Tammo van Lessen <tv...@gmail.com>.
Hi,
the response variable must be initialized before a specific xpath can be
accessed. Please have a look at our FAQ, too.
Add an assign activity and copy a structural skeleton into the variable
so that the xpath expression can be resolved.
HTH,
Tammo
ytrewq2002@libero.it wrote:
> hi to all,
>
>
> i have a problem.. i try to exec a bpel process into Ode. I deploy
> it into ode then i invoke it sending the soap with the soap utility into bin
> directory of ode distribution, or with a jax-ws client. I dvelop using netbeans
> than i copy bpel, wsdl, xsd and deploy.xml files into process directory. The
> bpel is a receive and reply: receive a string and reply with the same.
> During
> the replay i have to copy from input variable of receive statment to output var
> of reply (because variable are complextype [SOAP message type] i copy the
> simple elements
> of them with XPATH) but i get fault selection problem.
>
> My
> error fault is (i set the debug level in log4j properties
> #line added
> log4j.
> category.org.apache.ode=DEBUG):
>
> 15:49:48,318 INFO [ASSIGN] Assignment Fault:
> {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,
> lineNo=22,faultExplanation=No results for expression: {OXPath10Expression $Out.
> parameters/return}
> 15:49:48,350 DEBUG [SCOPE] ({OScope '__PROCESS_SCOPE:
> BpelHello' id=3},TerminationChannel#1,ParentScopeChannel#2): has a fault
> handler for {http://docs.oasis-open.org/wsbpel/2.0/process/executable}
> selectionFailure: {OCatch faultName=null, faultVariable=null}
> 15:49:48,381
> DEBUG [SCOPE] ({OCatch faultName=null, faultVariable=null},TerminationChannel:
> FH#14,ParentScopeChannel:FH#15): has no fault handler for {http://docs.oasis-
> open.org/wsbpel/2.0/process/executable}selectionFailure; scope will propagate
> FAULT!
> 15:49:48,459 DEBUG [BpelProcess] ProcessImpl completed with fault '{http:
> //docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure'
> 15:49:
> 48,459 DEBUG [MessageExchangeContextImpl] Processing an async reply from
> service {http://hello.netbureau.it/}HellonameService
>
>
> I listed above the bpel
> process, wsdl, xsd and deploy.xml files:
>
> -BpelHello.bpel-
>
> <process
> name="
> BpelHello"
> targetNamespace="http://enterprise.netbeans.
> org/bpel/BpelHelloWs/BpelHello"
> xmlns="http://docs.oasis-open.org/wsbpel/2.
> 0/process/executable"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
> xmlns:sxt="http://www.sun.com/wsbpel/2.
> 0/process/executable/SUNExtension/Trace"
> xmlns:sxed="http://www.sun.
> com/wsbpel/2.0/process/executable/SUNExtension/Editor"
> xmlns:tns="http:
> //enterprise.netbeans.org/bpel/BpelHelloWs/BpelHello" xmlns:ns0="http://hello.
> netbureau.it/"
> xmlns:myxsd="Helloname.xsd_1.xsd">
> <import namespace="
> http://hello.netbureau.it/" location="Helloname.wsdl" importType="http:
> //schemas.xmlsoap.org/wsdl/"/>
> <partnerLinks>
> <partnerLink name="
> HelloWs" xmlns:tns="http://hello.netbureau.it/" partnerLinkType="tns:Helloname"
> myRole="WriteHelloMsgRole"/>
> </partnerLinks>
> <variables>
>
> <variable name="Out" messageType="ns0:helloResponse"/>
> <variable name="
> HelloIn" xmlns:tns="http://hello.netbureau.it/" messageType="tns:hello"/>
>
> </variables>
> <sequence>
> <receive name="ReceiveHelloCmd"
> createInstance="yes" partnerLink="HelloWs" operation="hello" xmlns:tns="http:
> //hello.netbureau.it/" portType="tns:Helloname" variable="HelloIn"/>
>
> <assign name="Assign1">
> <copy insertMissingToData="yes">
>
> <from>$HelloIn.parameters/name</from>
> <to>$Out.
> parameters/return</to>
> </copy>
> </assign>
> <reply
> name="ReplyToHelloCmd" partnerLink="HelloWs" operation="hello" portType="ns0:
> Helloname" variable="Out"/>
> </sequence>
> </process>
>
>
> -DEPLOY.xml -
>
> <deploy
> xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
> xmlns:pns="http:
> //enterprise.netbeans.org/bpel/BpelHelloWs/BpelHello"
> xmlns:wns="http://hello.
> netbureau.it/">
>
>
> <process name="pns:BpelHello">
> <active>true</active>
>
> <provide partnerLink="HelloWs">
> <service name="wns:HellonameService" port="
> HellonamePort"/>
> </provide>
> </process>
> </deploy>
>
>
> -Helloname.wsdl-
>
> <?xml
> version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI at http://jax-ws.
> dev.java.net. RI's version is JAX-WS RI 2.1.4-b01-. --><!-- Generated by JAX-WS
> RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.4-b01-. --
>> <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="
> http://hello.netbureau.it/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="
> http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://hello.netbureau.it/"
> name="HellonameService" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.
> 0/plnktype">
> <types>
> <xsd:schema>
> <xsd:import namespace="http://hello.netbureau.
> it/" schemaLocation="Helloname.xsd_1.xsd"></xsd:import>
> </xsd:schema>
> </types>
>
> <message name="hello">
> <part name="parameters" element="tns:hello"></part>
>
> </message>
> <message name="helloResponse">
> <part name="parameters" element="tns:
> helloResponse"></part>
> </message>
> <portType name="Helloname">
> <operation name="
> hello">
> <input message="tns:hello"></input>
> <output message="tns:helloResponse"
>> </output>
> </operation>
> </portType>
> <binding name="HellonamePortBinding" type="
> tns:Helloname">
> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
> style="document"></soap:binding>
> <operation name="hello">
> <soap:operation
> soapAction=""></soap:operation>
> <input>
> <soap:body use="literal"></soap:body>
>
> </input>
> <output>
> <soap:body use="literal"></soap:body>
> </output>
> </operation>
>
> </binding>
> <service name="HellonameService">
> <port name="HellonamePort"
> binding="tns:HellonamePortBinding">
> <!--using with ode -->
> <!--soap:address
> location="http://localhost:8080/HelloWs/Helloname"></soap:address-->
> <soap:
> address location="http://localhost:8080/ode/processes/HelloWs"></soap:address>
>
> </port>
> </service>
> <plnk:partnerLinkType name="Helloname">
> <plnk:
> role name="WriteHelloMsgRole" portType="tns:Helloname"/>
> </plnk:
> partnerLinkType>
> </definitions>
>
> -Helloname.xsd_1.xsd-
>
> <xs:schema xmlns:tns="
> http://hello.netbureau.it/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
> version="1.0" targetNamespace="http://hello.netbureau.it/">
>
> <xs:element name="
> hello" type="tns:hello"></xs:element>
>
> <xs:element name="helloResponse" type="
> tns:helloResponse"></xs:element>
>
> <xs:complexType name="hello">
> <xs:sequence>
>
> <xs:element name="name" type="xs:string" minOccurs="0"></xs:element>
> </xs:
> sequence>
> </xs:complexType>
>
> <xs:complexType name="helloResponse">
> <xs:
> sequence>
> <xs:element name="return" type="xs:string" minOccurs="0"></xs:
> element>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
>
> In netbeans the bpel
> compiler tell me that "insertMissingToData is not allowed appear in element
> copy"..but i supposed that the fault problem message and the previous old ones
> that are the same of this last, are
> about the output variable of reply (Out)
> that isn't initialized correctly (Out is a type of soap message that is a
> complex type)
> So i read specification on : http://ode.apache.org/flexible-
> assigns.html and i added insertMissingToData to copy element but the fault
> message still remain the same!
>
> i have tried add an explicit assignement
> without insertMissingToData in the second copy element :
>
> <copy>
>
> <from><literal>0</literal></from>
> <to variable="
> Out" part="parameters">
> <query>myxsd:return</query>
>
> </to>
> </copy>
>
> but i get the same problem:
>
> 15:04:
> 23,192 DEBUG [ASSIGN] Assign.copy({OCopy {VarRef {Variable __PROCESS_SCOPE:
> BpelHello.Out:OMessageVarType#6}.parameters{OXPath10Expression myxsd:return}}=
> {Literal <?xml version="1.0" encoding="UTF-8"?>
> <literal xmlns="http://docs.
> oasis-open.org/wsbpel/2.0/process/executable">0</literal>}})
> 15:04:23,285 DEBUG
> [ASSIGN] Evaluating FROM expression "{Literal <?xml version="1.0" encoding="UTF-
> 8"?>
> <literal xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>> 0</literal>}".
> 15:04:23,285 DEBUG [ASSIGN] lvalue after eval [message: null]
>
> 15:04:23,285 DEBUG [ASSIGN] content <?xml version="1.0" encoding="UTF-8"?>
>
> <message><parameters><helloResponse xmlns="http://hello.netbureau.it/"
> /></parameters></message>
> 15:04:23,348 INFO [ASSIGN] Assignment Fault: {http:
> //docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=22,
> faultExplanation=No results for expression: {OXPath10Expression myxsd:return}
>
> 15:04:23,395 DEBUG [SCOPE] ({OScope '__PROCESS_SCOPE:BpelHello' id=3},
> TerminationChannel#1,ParentScopeChannel#2): has a fault handler for {http:
> //docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure: {OCatch
> faultName=null, faultVariable=null}
> 15:04:23,410 DEBUG [SCOPE] ({OCatch
> faultName=null, faultVariable=null},TerminationChannel:FH#14,ParentScopeChannel:
> FH#15): has no fault handler for {http://docs.oasis-open.org/wsbpel/2.
> 0/process/executable}selectionFailure; scope will propagate FAULT!
> 15:04:23,504
> DEBUG [BpelProcess] ProcessImpl completed with fault '{http://docs.oasis-open.
> org/wsbpel/2.0/process/executable}selectionFailure'
>
> someone could help me
> please!!!
>
>
> thank you very much!
>
> Roberto
--
Tammo van Lessen - http://www.taval.de