ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Milinda Pathirage <milinda.pathir...@gmail.com>
Subject Re: ODE selectionFault
Date Wed, 16 Sep 2009 04:13:16 GMT
Wenfeng is right. AFAIK OpenESB's BPEL engine implicitly initialize the
variables. So that Netbeans BPEL editor don't validate this. You have to
initialize the variables before modifying them. I think the problem occurs
if there are any XPath filtering before changing the destination variable.
If the copy is directly message part to part it won't be a problem.

Thanks
Milinda

On Wed, Sep 16, 2009 at 6:49 AM, Wenfeng ZHAO <zhaowenfeng@gmail.com> wrote:

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



-- 
Milinda Pathirage
Senior Software Engineer & Product Manager WSO2 BPS; http://wso2.org/bps
WSO2 Inc.; http://wso2.com
E-mail: milinda@wso2.com, milinda.pathirage@gmail.com
Web: http://mpathirage.com
Blog: http://blog.mpathirage.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message