2012-01-17 11 views
1

Apache ODEを使用して、2つのWebサービスを接続するための単純なBPELを作成しています。の入力に:私は(文字列だけのXSDである)、サービスリターン・メッセージからコピーを作成するにはどうすればよいcomplexTypeをBPELのメッセージにコピー

<types> 
<t:schema targetNamespace="http://ws.panos.com/" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<t:complexType name="myObject"> 
    <t:sequence> 
    <t:element minOccurs="0" name="str" type="t:string" /> 
    </t:sequence> 
</t:complexType> 
</t:schema> 

: 私の2つのサービスのWSDLファイルの1つが、この複合型が含まれていますメッセージ(タイプの "STR" 内の "myObjectという"

私はこれを行うことを試みているが、働くように見えるdoesntの?

<assign name="assign_2"> 
<copy> 
    <from variable="wsA_output" part="return"/> 
    <to variable="wsC_input" part="arg0" query="/arg0/str"/> 
</copy> 

私はいつもnull文字列を転送します。大いに感謝します。

答えて

1

to-spec <to variable="..." part="..." query="..."/>は、BPEL 1.1およびBPEL 2.0では無効です。正しい同等の式は、<to>$wsC_input.arg0/arg0/str</to>または<to variable="wsC_input" part="arg0"><query>/arg0/str</query></to>です。ネストされた構造体に値を割り当てる前に、変数を初期化するようにしてください。

+0

ただエラーが何であったかが分かりました。男はありがとう!このスレッドの下の別のポストにそれに関する詳細を書いていきます。 – Panos

+0

こんにちは@vanto、complexType myObjectに2つの要素があり、入力文字列をその "str"要素にマップする必要がある場合は、相関関係が必要ですか? – eskalera

0

間違いを見つけました。あなたは、私たちはこのようにフィールドを見つけるために照会する必要がある、右のとおりです。

<assign name="assign_2"> 
<copy> 
    <from variable="wsA_output" part="return"/> 
      <to>$wsC_input.message/arg0/str</to> 
</copy> 
</assign> 

また、私たちはこのように変数を初期化する必要があります。

<assign name="assign_init"> 
<copy> 
    <from> 
     <literal><arg0><str xmlns="">nothing</str></arg0></literal> 
    </from> 
    <to variable="wsC_input" part="arg0"></to> 
</copy> 
</assign> 

のxmlns =「」する際に必要とされますbpelのデフォルトの名前空間は、受信するWebサービスの名前空間とは異なります。

私は将来の参考:)再び

、あなたのためのおかげであなたの答えのためにこれらを下に書いています。

も他の人々を助けることができるいくつかのリンク:

http://ode.apache.org/faq.html

http://jee-bpel-soa.blogspot.com/2009/08/manipulating-ws-bpel-variables-and.html

関連する問題