Hello Keith, I believe the reason is: both of the two destination variables in the two copy activities has not been initialized. See the WS-BPEL standard 2.0(April 11,2007) at page 48 (Section 8.1): "A global variable is in an uninitialized state at the beginning of a process. A local variable is in an uninitialized state at the start of the scope it belongs to." and "An attempt during process execution to read a variable or, in the case of a message type variable, a part of a variable before it is initialized MUST result in the standard bpel:uninitializedVariable fault."
I guess other BPEL engines might implicitly intialize the destination variable of copy. To locate where in the process the fault takes place, the console output of ODE is a good choice, which by default contains some verbose DEBUG/ERROR information. Haven't you read them? Wenfeng =======On 2009-09-16 at 02:38:09 Barlow, Keith wrote: ======= > Hiyas, > > > > I am trying to use a BPEL created in NetBeans 6.5.1 on ODE and am > getting a selectionFailure when the process runs. The BPEL seems to > work fine in OpenESB. I would like to use ODE though because OpenESB is > tied to the Glassfish Application Server; however, I have not been able > to find a suitable (relatively bug free) designer for Eclipse yet. I am > hoping to write BPELs with the NetBeans designer and import them to > Eclipse to port to ODE. The BPEL is supposed to be the same as long as > it is not vendor specific. > > > > Anyway... here is the BPEL which is throwing the selectionFailure. It's > a simple sample service that just invokes a service to convert an id > number to a name: > > > > < process > > name="CustomerProcess" > > targetNamespace="http://soa.com/bpel/CustomerProcess" > > 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/SUNExtensio > n/Editor" > > xmlns:tns="http://soa.com/bpel/CustomerProcess" > xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"> > > < import namespace="urn:com:soa" > location="localhost_8080/CustomerLookupService/CustomerLookupService.wsd > l" importType="http://schemas.xmlsoap.org/wsdl/"/> > > < import namespace="http://soa.com/wsdl/CustomerProcessEsb" > location="CustomerProcessEsb.wsdl" > importType="http://schemas.xmlsoap.org/wsdl/"/> > > < partnerLinks> > > < partnerLink name="NameServicePartnerLink" > xmlns:tns="urn:com:soa" partnerLinkType="tns:CustomerLookupService" > partnerRole="lookupRole"/> > > < partnerLink name="CustomerProcessPartnerLink" > xmlns:tns="http://soa.com/wsdl/CustomerProcessEsb" > partnerLinkType="tns:CustomerProcessEsb" > myRole="CustomerProcessEsbPortTypeRole"/> > > < /partnerLinks> > > < variables> > > < variable name="CustomerProcessEsbOperationOut" > xmlns:tns="http://soa.com/wsdl/CustomerProcessEsb" > messageType="tns:CustomerProcessEsbOperationResponse"/> > > < variable name="GetCustomerFullNameOut" xmlns:tns="urn:com:soa" > messageType="tns:getCustomerFullNameResponse"/> > > < variable name="GetCustomerFullNameIn" xmlns:tns="urn:com:soa" > messageType="tns:getCustomerFullName"/> > > < variable name="CustomerProcessEsbOperationIn" > xmlns:tns="http://soa.com/wsdl/CustomerProcessEsb" > messageType="tns:CustomerProcessEsbOperationRequest"/> > > < /variables> > > < sequence> > > < receive name="ReceiveLookupRequest" createInstance="yes" > partnerLink="CustomerProcessPartnerLink" > operation="CustomerProcessEsbOperation" > xmlns:tns="http://soa.com/wsdl/CustomerProcessEsb" > portType="tns:CustomerProcessEsbPortType" > variable="CustomerProcessEsbOperationIn"/> > > < assign name="Assign1"> > > < copy> > > > < from> $CustomerProcessEsbOperationIn.getCustomerFullNameEsb/customerID< / > from> > > < to> $GetCustomerFullNameIn.parameters/customerID< /to> > > < /copy> > > < /assign> > > < invoke name="InvokeCustomerLookup" > partnerLink="NameServicePartnerLink" operation="getCustomerFullName" > xmlns:tns="urn:com:soa" portType="tns:CustomerLookupService" > inputVariable="GetCustomerFullNameIn" > outputVariable="GetCustomerFullNameOut"/> > > < assign name="Assign2"> > > < copy> > > > < from> $GetCustomerFullNameOut.parameters/customerFullName< /from> > > > < to> $CustomerProcessEsbOperationOut.getCustomerFullNameResponseEsb/custo > merFullName< /to> > > < /copy> > > < /assign> > > < reply name="ReplyToClient" > partnerLink="CustomerProcessPartnerLink" > operation="CustomerProcessEsbOperation" > xmlns:tns="http://soa.com/wsdl/CustomerProcessEsb" > portType="tns:CustomerProcessEsbPortType" > variable="CustomerProcessEsbOperationOut"/> > > < /sequence> > > < /process> > > > > Is there anything obvious here that stands out which might cause the > selectionFailure fault? What are some of the recommended ways to narrow > down which bpel activity is generating the fault? Does ODE have more > verbose logging settings? > > > > Thanks. > > > > Keith = = = = = = = = = = = = = = = = = = = = ZHAO Wenfeng (赵文峰) Ph.D. Candidate http://www.bupt.edu.cn
