如何使用骡子中的每一个

时间:2015-09-10 06:43:38

标签: mule mule-studio

***I have a xml ---***
<DBOperation>
<ListOfOperation>
<operation>
<operationName>Insert</operationName>
<input>
<empid>3</empid>
<name>saurabh</name>
</input>
<operationName>Delete</operationName>
<input>
<empid>3</empid>
</input>
<operationName>insert</operationName>
<empid>3</empid>
<name>saurabh</name>
<operationName>update</operationName>
<input>
<empid>3</empid>
<name>raj</>
</input>
</operation>
</ListOfOperation>
</DBOperation>

我希望将此xml作为soap消息发送,但是整个操作立即发送,以便使用一个请求我可以使用选择路由执行所有操作....在中执行此操作的最有效方法是什么mulesoft ...如果每个人都应该使用集合标签配置

2 个答案:

答案 0 :(得分:0)

您是否需要创建一个将此xml作为响应返回的Web服务?

如果是,这可能会对您有所帮助:

JAVA(没有)

  • 创建一个与您的xml完全匹配的java bean和属性:Response.java
  • 使用一个操作创建一个返回此Response的java类。并使用一些库,创建您的Web服务:
 

@WebService

    public class WebService {       
        public Response operation_name(Request request){

        }
    }


如果您需要一些参数请求类。

https://github.com/jrichardsz/java-web-services-template-soa-rest

  • 最后,当您需要返回xml作为响应时,使用unmarshall进程将您的xml文件转换为Response.java。

http://www.javatpoint.com/jaxb-unmarshalling-example

MULE

此致

答案 1 :(得分:0)

<flow name="dbopps">
<http:listener config-ref="HTTP_Listener_Configuration1" path="/" doc:name="HTTP"/>
***<foreach collection="#[xpath://.[xpath:local-name()='DBOperation']/*[xpath:local-name()='ListOfOperation']/*[xpath:local-name()='operation']]" doc:name="For Each" >***
<mulexml:dom-to-xml-transformer doc:name="DOM to XML"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<set-variable variableName="name" value="#[xpath('//operationName').text]" doc:name="Variable"/>
<logger message="#[flowVars.name]" level="INFO" doc:name="Logger"/>
<choice tracking:enable-default-events="true" doc:name="Choice">
<when expression="#[flowVars.name == 'Insert']">
<db:insert config-ref="MySQL_Configuration" doc:name="Insert">
<db:parameterized-query><![CDATA[Insert into employees(empid,name) values ('43',#[xpath('//name').text])]]></db:parameterized-query>
</db:insert>
</when>
<when expression="#[flowVars.name == 'Delete']">
<db:delete config-ref="MySQL_Configuration" doc:name="Delete">
<db:parameterized-query><![CDATA[Delete from employees where empid='10']]></db:parameterized-query>
</db:delete>
</when>
</foreach>
<set-variable variableName="id" value="#[xpath://.[xpath:local-name()='DBOperation']/*[xpath:local-name()='ListOfOperation']/*[xpath:local-name()='operation']/*[xpath:local-name()='operationName']']" doc:name="Variable"/>
<set-payload value="&lt;a&gt; hello &lt;/a&gt;" doc:name="Set Payload"/>
</flow>

这对我来说很好,你可以检查收集标签配置。