скопировать complexType к сообщению в BPEL - PullRequest
1 голос
/ 17 января 2012

Я использую Apache ODE, чтобы написать несколько простых BPEL для подключения двух веб-сервисов. Один из файлов WSDL моих двух сервисов содержит этот сложный тип:

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

Как сделать копию из сообщения о возврате службы (которое является просто строкой xsd:) для ввода сообщения (внутри "str" ​​типа "myObject"?

Я пытался сделать это, но, похоже, не работает:

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

Я всегда получаю пустую строку. Помощь высоко ценится.

Ответы [ 2 ]

1 голос
/ 18 января 2012

Спецификация <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 голосов
/ 18 января 2012

Только что нашел ошибку. Вы правы, нам нужно выполнить запрос, чтобы найти поле, подобное этому:

 <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 отличается от пространства имен в принимающем веб-сервисе.

Я просто записываю их для дальнейшего использования:)

Опять же, спасибо за ваш ответ.

Некоторые ссылки, которые также могут помочь другим людям:

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

http://jee -bpel-soa.blogspot.com / 2009/08 / манипулируя-WS-BPEL-переменные-and.html

...