To clarify, the first sentence should have read "the input variable is being
initialized _unnecessarily_, effectively being set to an empty string."  I
meant to say that the input message is correctly populated with data from
your incoming message, but you're accidentally wiping it out by initializing
the input variable.  - Rich


On 8/31/07, Rich Taylor <[EMAIL PROTECTED]> wrote:
>
> In the process you attached, the "input" variable is being initialized,
> effectively being set to an empty string.  It is then referenced, but it's
> already been wiped out, hence the blank response.   Remove the first two
> "copy" operations from your "assign" activity and it should be closer to
> working.
>
> In your process, the input variable is populated/initialized by the
> "receive" activity in the beginning of the process, with the data
> "sdfgsdfg", from the incoming message.  It's only the output variable that
> _you_ need to initialize, since it is an empty xml document.
>
> If you're looking for a minimal echo bpel process, I have attached one
> below.   The process below was created with the Eclipse BPEL Designer and is
> very similar, just a simpler way to accomplish what you're after.
>
> If you notice, I didn't have to initialize the output variable.  It may
> not have been clear from earlier emails, but you only have to initialize
> vars if you're going to copy a value into a section of a message that is
> deeper than the node you're specifying with "message" and "part".   I
> realize that explanation may or may not help.  I would say review the
> "Assign" section of the BPEL spec[1].  I had to read it several times and
> admit that I still get it all.
>
> Let us know if it still doesn't work.
>
> Peace, Rich
>
> [1] http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html#_Toc164738498
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <bpws:process exitOnStandardFault="yes" name="Test4"
>     suppressJoinFailure="yes"
>     targetNamespace="urn:test"
>     xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable";
> xmlns:tns="urn:test">
>     <bpws:import importType=" http://schemas.xmlsoap.org/wsdl/";
>         location="Test4.wsdl" namespace="urn:test"/>
>     <bpws:partnerLinks>
>         <bpws:partnerLink myRole="Test4Provider" name="client"
> partnerLinkType="tns:Test4"/>
>     </bpws:partnerLinks>
>     <bpws:variables>
>         <bpws:variable messageType="tns:Test4RequestMessage"
> name="input"/>
>         <bpws:variable messageType="tns:Test4ResponseMessage"
> name="output"/>
>     </bpws:variables>
>     <bpws:sequence name="main">
>         <bpws:receive createInstance="yes" name="receiveInput"
>             operation="process" partnerLink="client"
>             portType="tns:Test4" variable="input"/>
>         <bpws:assign name="Assign" validate="no">
>             <bpws:copy>
>                 <bpws:from part="payload" variable="input"/>
>                 <bpws:to part="payload" variable="output"/>
>             </bpws:copy>
>         </bpws:assign>
>         <bpws:reply name="replyOutput" operation="process"
>             partnerLink="client" portType="tns:Test4" variable="output"/>
>     </bpws:sequence>
> </bpws:process>
>
>
> On 8/31/07, Greg Bluntzer <[EMAIL PROTECTED]> wrote:
> >
> >
> > Ok it doesnt fail anymore but it doesnt copy the value over either what
> > am i
> > doing wrong.
> >
> > I was assuming that I need to initialize the output variable as well.
> >
> > ####WSDL#####
> > <?xml version=" 1.0"?>
> > <definitions name="Test4"
> >         targetNamespace="http://Test4";
> >         xmlns:tns="http://Test4";
> >         xmlns:plnk=" http://docs.oasis-open.org/wsbpel/2.0/plnktype";
> >         xmlns="http://schemas.xmlsoap.org/wsdl/";
> >         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
> >
> > <!--
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >      TYPE DEFINITION - List of types participating in this BPEL process
> >      The BPEL Designer will generate default request and response types
> >      but you can define or import any XML Schema type and use them as
> > part
> >      of the message types.
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > -->
> >     <types>
> >         <schema attributeFormDefault="unqualified"
> > elementFormDefault="qualified"
> >                 targetNamespace="http://Test4 "
> >                 xmlns="http://www.w3.org/2001/XMLSchema";>
> >
> >             <element name="Test4Request">
> >                 <complexType>
> >                     <sequence>
> >                         <element name="input" type="string"/>
> >                     </sequence>
> >                 </complexType>
> >             </element>
> >
> >             <element name="Test4Response">
> >                 <complexType>
> >                     <sequence>
> >                         <element name="result" type="string"/>
> >                     </sequence>
> >                 </complexType>
> >             </element>
> >         </schema>
> >     </types>
> >
> >
> > <!--
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >      MESSAGE TYPE DEFINITION - Definition of the message types used as
> >      part of the port type defintions
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > -->
> >     <message name="Test4RequestMessage">
> >         <part name="payload" element="tns:Test4Request"/>
> >     </message>
> >     <message name="Test4ResponseMessage">
> >         <part name="payload" element="tns:Test4Response"/>
> >     </message>
> >
> > <!--
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >      PORT TYPE DEFINITION - A port type groups a set of operations into
> >      a logical service unit.
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > -->
> >
> >     <!-- portType implemented by the Test4 BPEL process -->
> >     <portType name="Test4">
> >         <operation name="process">
> >             <input  message="tns:Test4RequestMessage" />
> >             <output message="tns:Test4ResponseMessage"/>
> >         </operation>
> >     </portType>
> >
> >
> > <!--
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >      PARTNER LINK TYPE DEFINITION
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > -->
> >     <plnk:partnerLinkType name="Test4">
> >         <plnk:role name="Test4Provider" portType="tns:Test4"/>
> >     </plnk:partnerLinkType>
> >
> >     <binding name="Test4SOAPBinding" type="tns:Test4">
> >         <soap:binding style="document"
> >                 transport=" http://schemas.xmlsoap.org/soap/http"; />
> >         <operation name="process">
> >                 <soap:operation soapAction="http://Test4/process"; />
> >                 <input>
> >                         <soap:body use="literal" />
> >                 </input>
> >                 <output>
> >                         <soap:body use="literal" />
> >                 </output>
> >         </operation>
> >     </binding>
> >     <service name="Test4Service">
> >         <port name="Test4Port" binding="tns:Test4SOAPBinding">
> >                 <soap:address
> > location="http://localhost:8080/ode/processes/Test4";></soap:address>
> >         </port>
> >     </service>
> > </definitions>
> >
> >
> >
> >
> > ####BPEL####
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <bpws:process exitOnStandardFault="yes" name="Test4"
> >     suppressJoinFailure="yes" targetNamespace=" http://Test4";
> >     xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable
> > "
> > xmlns:tns=" http://Test4";>
> >     <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
> >         location="Test4.wsdl" namespace=" http://Test4"/>
> >     <bpws:partnerLinks>
> >         <bpws:partnerLink myRole="Test4Provider" name="client"
> > partnerLinkType="tns:Test4"/>
> >     </bpws:partnerLinks>
> >     <bpws:variables>
> >         <bpws:variable messageType="tns:Test4RequestMessage"
> > name="input"/>
> >         <bpws:variable messageType="tns:Test4ResponseMessage"
> > name="output"/>
> >     </bpws:variables>
> >     <bpws:sequence name="main">
> >         <bpws:receive createInstance="yes" name="receiveInput"
> >             operation="process" partnerLink="client"
> >             portType="tns:Test4" variable="input"/>
> >         <bpws:assign name="Assign" validate="no">
> >             <bpws:copy keepSrcElementName="yes">
> >                 <bpws:from>
> >                     <bpws:literal>
> >                         <Test4Request xmlns="http://Test4";>
> >                             <input/>
> >                         </Test4Request>
> >                     </bpws:literal>
> >                 </bpws:from>
> >                 <bpws:to part="payload" variable="input"/>
> >             </bpws:copy>
> >             <bpws:copy>
> >                 <bpws:from part="payload" variable="input">
> >                     <bpws:query
> > queryLanguage="urn:oasis:names:tc:wsbpel: 2.0:sublang:xpath1.0
> > "><![CDATA[/tns:input]]></bpws:query>
> >                 </bpws:from>
> >                 <bpws:to><![CDATA[$input.payload/tns:input]]></bpws:to>
> >             </bpws:copy>
> >             <bpws:copy keepSrcElementName="yes">
> >                 <bpws:from>
> >                     <bpws:literal>
> >                         <Test4Response xmlns=" http://Test4";>
> >                             <result/>
> >                         </Test4Response>
> >                     </bpws:literal>
> >                 </bpws:from>
> >                 <bpws:to part="payload" variable="output"/>
> >             </bpws:copy>
> >             <bpws:copy>
> >                 <bpws:from part="payload" variable="input">
> >                     <bpws:query
> > queryLanguage="urn:oasis:names:tc:wsbpel: 2.0:sublang:xpath1.0
> > "><![CDATA[/tns:input]]></bpws:query>
> >                 </bpws:from>
> >
> >                 <bpws:to><![CDATA[$output.payload/tns:result]]></bpws:to>
> >             </bpws:copy>
> >         </bpws:assign>
> >         <bpws:reply name="replyOutput" operation="process"
> >             partnerLink="client" portType="tns:Test4"
> > variable="output"/>
> >     </bpws:sequence>
> > </bpws:process>
> >
> > #### DEPLOY ####
> > <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03";
> >         xmlns:pns=" http://Test4";
> >         xmlns:wns="http://Test4";>
> >
> >
> >         <process name="pns:Test4">
> >                 <active>true</active>
> >                 <provide partnerLink="client">
> >                         <service name="wns:Test4Service"
> > port="Test4Port"/>
> >                 </provide>
> >         </process>
> > </deploy>
> >
> > ####  SOAP  ####
> > <soapenv:Envelope xmlns:soapenv="
> > http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:tes=" http://Test4";>
> >    <soapenv:Header/>
> >    <soapenv:Body>
> >       <tes:Test4Request>
> >          <tes:input>sdfgsdfg</tes:input>
> >       </tes:Test4Request>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> > #### SOAP RESPONSE ####
> > <soapenv:Envelope xmlns:soapenv="
> > http://schemas.xmlsoap.org/soap/envelope/";>
> >    <soapenv:Body>
> >       <axis2ns1:Test4Response xmlns:axis2ns1="http://Test4";
> > xmlns="http://Test4";>
> >          <result/>
> >       </axis2ns1:Test4Response>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> >
> > RichTaylor wrote:
> > >
> > > Hi Greg, this threw me off for a while as well.  Basically before you
> > > assign
> > > a value into an xml document (a variable in this case), it, as an xml
> > > document must exist.  The simplest way to do this in your case would
> > be to
> > > add another "copy" operation in your assign, right before your current
> > one
> > > (can be in the same assign activity).   In the eclipse editor, select
> > > "Fixed
> > > Value", then type a raw XML document that conforms to your schema type
> > > tns:Test4ResponseMessage.
> > > I don't see that aspect of your WSDL so I can't give you an exact
> > example.
> > > But it would look something like the  following in your BPEL (note,
> > the
> > > Eclipse designer add the "literal" element for you).  Notice the _two_
> > > "copy" operations, the first one is the one you're missing.   Let me
> > know
> > > if
> > > this isn't clear.
> > >
> > > <bpws:assign>
> > >             <bpws:copy>
> > >                 <bpws:from>
> > >                     <literal>
> > >                         <GetQuotes xmlns=" http://swanandmokashi.com";>
> > >                             <QuoteTicker/>
> > >                         </GetQuotes>
> > >                     </literal>
> > >                 </bpws:from>
> > >                 <bpws:to variable="quoteInput" part="parameters"/>
> > >             </bpws:copy>
> > >             <bpws:copy>
> > >
> > > <bpws:from><![CDATA[$input.payload/tns:input]]></bpws:from>
> > >
> > >
> > <bpws:to><![CDATA[$quoteInput.parameters/quote:QuoteTicker]]></bpws:to>
> > >             </bpws:copy>
> > >         </bpws:assign>
> > >
> > >
> > > Cheers, Rich Taylor
> > >
> > > On 8/31/07, Greg Bluntzer <[EMAIL PROTECTED]> wrote:
> > >>
> > >>
> > >> Alex thanks for your help but im still stuck.
> > >>
> > >> Can anyone point me to a good example of initializing variables or
> > tell
> > >> me
> > >> what to do.  I looked through the other post and being new, don't
> > really
> > >> understand Alex's answer.  Im using document style binding and am
> > just
> > >> trying to copy the input variable to the output variable.
> > >>
> > >>
> > >> Eclipse BPEL has the following choices on Initializing Variables
> > >> Variable
> > >> Expression
> > >> Fixed Value
> > >> Property of Variable
> > >> Partner Link Reference
> > >> End Point Reference
> > >> Opaque
> > >>
> > >> or am i supposed to use another assign?
> > >>
> > >> My WSDL, BPEL, DEPLOY, SOAP call are on previous post
> > >>
> > >>
> > >> Thanks, Greg
> > >>
> > >>
> > >>
> > >> Alex Boisvert wrote:
> > >> >
> > >> > In your case, the "output" variable (payload part) needs to be
> > >> initialized
> > >> > with a literal element <tns:result> to satisfy the <to> expression.
> > >> >
> > >> > alex
> > >> >
> > >> >
> > >> > On 8/30/07, Alex Boisvert < [EMAIL PROTECTED]> wrote:
> > >> >>
> > >> >> Hi Greg,
> > >> >>
> > >> >> See the (new) FAQ:  *My process fails with a selectionFailure;
> > What
> > >> can
> > >> I
> > >> >> do?*<
> > >> http://cwiki.apache.org/confluence/display/ODExSITE/Frequently+Asked+Questions
> >
> > >> >
> > >> >>
> > >> >> I just added it since similar questions were asked recently.
> > >> >>
> > >> >> alex
> > >> >>
> > >> >>
> > >> >> On 8/30/07, Greg Bluntzer < [EMAIL PROTECTED]> wrote:
> > >> >> >
> > >> >> >
> > >> >> > Thanks for your help now it deploys. But now i have a different
> > >> issue.
> > >> >> I
> > >> >> > changed rpc to document as you suggested.
> > >> >> > Now im getting a new error when i access the webservice. Im
> > using
> > >> >> SoapUI
> > >> >> > to
> > >> >> > create my SOAP Test
> > >> >> >
> > >> >> > Again Thanks for any help
> > >> >> >
> > >> >> > #####ERROR######
> > >> >> > ERROR - GeronimoLog.error(108) | Error processing response for
> > MEX
> > >> >> > {MyRoleMex#hqejbhcnphr2jrxh4xvf4x
> > >> >> > [Client hqejbhcnphr2jrxh4xvf4w] calling
> > >> >> > {Test4}Test4Service.process(...)}
> > >> >> > org.apache.axis2.AxisFault:
> > >> >> >
> > >> >> {
> > >> http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailu
> >
> > <http://docs.oasis-open.org/wsbpel/2.0/process/executable%7DselectionFailu>
> > <
> > >>
> > http://docs.oasis-open.org/wsbpel/2.0/process/executable%7DselectionFailu
> > >
> > >> >> > re No results for expression: {OXPath10Expression /tns:result}
> > >> >>
> > >> >>
> > >> >>
> > >> >
> > >> >
> > >>
> > >> --
> > >> View this message in context:
> > >>
> > http://www.nabble.com/Problems-with-ODE-1.1-Release-tf4355659.html#a12427799
> > >> Sent from the Apache Ode User mailing list archive at Nabble.com.
> > >>
> > >>
> > >
> > >
> >
> > --
> > View this message in context:
> > http://www.nabble.com/Problems-with-ODE-1.1-Release-tf4355659.html#a12433273
> > Sent from the Apache Ode User mailing list archive at Nabble.com.
> >
> >
>

Reply via email to