You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by "M.Madhaiyan" <ma...@gmail.com> on 2009/09/28 18:47:06 UTC

Is automatic WS composition possible?

hi.
i am doing project in anna university, chennai, india. during my first
review, the project reviewers asked me to do the web service composition
automatically.

In BPEL we have to hard code the composition of various services, but the
execution is dynamic.. it depends on the user input.

I need the composition should be automatic one.. is there any approach.. plz
help me..

Regards
M.Madhaiyan

On Mon, Sep 28, 2009 at 4:08 PM, Tammo van Lessen <tv...@gmail.com>wrote:

> Hi,
>
> looks like a namespace issue. The name element you're creating in your
> literal-copy is not in the null-namespace but rather in the BPEL
> namespace (the default namespace), which is wrong. Try the following
> literal assign expression:
>
> <literal>
>    <ns2:hello xmlns:ns2="http://hello.netbureau.it/">
>         <name xmlns=""/>
>    </ns2:hello>
> </literal>
>
> HTH,
>  Tammo
>
> ytrewq2002@libero.it wrote:
> > hi,
> >
> >
> > this is the correct soap msg i have to send to an external webservice
> HelloWs and it works:
> >
> > <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns2:hello
> xmlns:ns2="http://hello.netbureau.it/
> "><name>pippo</name></ns2:hello></soapenv:Body></soapenv:Envelope>
> >
> > so i try to call with invoke ina  bpel process:
> >
> > valuating FROM expression "{Literal <?xml version="1.0"
> encoding="UTF-8"?>
> > <literal xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable
> ">
> > <ns2:hello xmlns:ns2="http://hello.netbureau.it/">
> >    <name/>
> > </ns2:hello>
> > </literal>}".
> >
> > This is the firts part of intialize a variable HelloIn that is the input
> of invoke.
> > defining a literal for instanciate a message to send is ok but in the
> second step why when i copy this into the HelloIn variable whose type is
> hello it give me a different soap message ( ns2: namespace prefix disappear
> and also the tag name get a bpel namespace..this is not correct!)
> >
> > ASSIGN Writing variable 'HelloIn' value '<?xml version="1.0"
> encoding="UTF-8"?>
> > <message><parameters><hello xmlns="http://hello.netbureau.it/">
> > <name xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"/>
> >  </hello></parameters></message>'
> >
> > this is wrong.. why???? so i get a SelectionFailure exception when i try
> to write into HelloIn..
> >
> > :(
> >
> > my wsdl contain <types> <schema....
> > and elementFormDefault= "unqualified"
> > instead bpel schema is qualified and so tns:input is the input of bpel
> process (Caller.bpel), that is:
> >
> > message><payload><CallerRequest xmlns="http://MyTest.com/Test" xmlns:S="
> http://schemas.xmlsoap.org/soap/envelope/"><input xmlns="
> http://MyTest.com/Test">pippo</input></CallerRequest></payload></message>
> >
> >
> > Can help me?
> >
> > this is the bpel:
> >
> > <process
> >     name="Caller"
> >     targetNamespace="http://hello.netbureau.it/"
> >     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://MyTest.com/Test"
> >     xmlns:ns2="http://hello.netbureau.it/">
> >
> >     <!--schema def for bpel, adding to process tag-->
> >     <!--xsd:schemaLocation="ws_bpel_executable.xsd"-->
> >
> >      <!-- wsdl Caller + partnerLink defintion-->
> >     <import namespace="http://MyTest.com/Test" location="Caller.wsdl"
> importType="http://schemas.xmlsoap.org/wsdl/"/>
> >      <!-- wsdl Ws Helloname + PartenrLinkType definition-->
> >     <import namespace="http://hello.netbureau.it/"
> location="Helloname.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
> >     <!-- xsd xhema for HellonameWs -->
> >     <!--import namespace="http://hello.netbureau.it/"
> location="Helloname.xsd" importType="http://www.w3.org/2001/XMLSchema"/-->
> >     <partnerLinks>
> >         <partnerLink name="HelloWs" partnerLinkType="ns2:Helloname"
> partnerRole="WriteHelloMsgRole"/>
> >         <partnerLink name="Caller" partnerLinkType="tns:Caller"
> myRole="CallerProvider"/>
> >     </partnerLinks>
> >     <variables>
> >         <variable name="CallerOut"
> messageType="tns:CallerResponseMessage"/>
> >         <variable name="HelloOut" messageType="ns2:helloResponse"/>
> >         <variable name="HelloIn" messageType="ns2:hello" />
> >         <variable name="ProcessIn"
> messageType="tns:CallerRequestMessage"/>
> >     </variables>
> >     <sequence>
> >         <receive name="ReceiveFromclient"
> >         createInstance="yes"
> >         partnerLink="Caller"
> >         operation="process" xmlns:tns="http://MyTest.com/Test"
> >         portType="tns:Caller"
> >         variable="ProcessIn"/>
> >         <assign name="Assign1">
> >             <copy>
> > <!-- first part soap message correct-->
> >                 <from>
> >                     <literal>
> >                         <ns2:hello xmlns:ns2="http://hello.netbureau.it/
> ">
> >                             <name/>
> >                         </ns2:hello>
> >                     </literal>
> >                 </from>
> > <!-- second part soap message wrong -->
> >                 <to variable="HelloIn" part="parameters"></to>
> >             </copy>
> >             <copy>
> >                 <from>$ProcessIn.payload/tns:input</from>
> >                 <to>$HelloIn.parameters/name</to>
> >             </copy>
> >         </assign>
> >         <invoke name="InvokeHelloname"
> >         partnerLink="HelloWs"
> >         operation="hello"
> >         portType="ns2:Helloname"
> >         inputVariable="HelloIn"
> >         outputVariable="HelloOut"/>
> >         <assign name="Assign2">
> >             <copy>
> >                 <from>
> >                     <literal>
> >                         <tns:CallerResponse>
> >                             <tns:result/>
> >                         </tns:CallerResponse>
> >                     </literal>
> >                 </from>
> >                 <to part="payload" variable="CallerOut"/>
> >             </copy>
> >             <copy>
> >                 <!-- this is work fine without namespace(it depends on
> web service response)-->
> >                 <from>$HelloOut.parameters/return</from>
> >                 <to>$CallerOut.payload/tns:result</to>
> >             </copy>
> >         </assign>
> >         <reply name="ReplyToClient" partnerLink="Caller"
> operation="process" portType="tns:Caller" variable="CallerOut"/>
> >     </sequence>
> >
> > </process>
> >
> >
> >
> >
>
>
> --
> Tammo van Lessen - http://www.taval.de
>