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

[email protected] 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

Reply via email to