Mule 3.4+;:为静态SOAP请求设置有效负载的最佳实践
我对骡子还很陌生,所以这可能是个愚蠢的问题。我想从Mule调用远程axis2 SOAP服务,为此我将使用SOAP组件。我正在努力解决的是有效负载数量的正确模式。下面是一个非常简单的有效负载示例Mule 3.4+;:为静态SOAP请求设置有效负载的最佳实践,mule,Mule,我对骡子还很陌生,所以这可能是个愚蠢的问题。我想从Mule调用远程axis2 SOAP服务,为此我将使用SOAP组件。我正在努力解决的是有效负载数量的正确模式。下面是一个非常简单的有效负载示例 <oper:CreateTask xmlns:oper="http://api.abc.com/workflow/operationtypes"> <workType> <Name>Reminder Task</Name>
<oper:CreateTask xmlns:oper="http://api.abc.com/workflow/operationtypes">
<workType>
<Name>Reminder Task</Name>
</workType>
<activitySubject>
<GenericSubject>Richard Fanning</GenericSubject>
</activitySubject>
<description>This is a Mule generated Reminder Task</description>
</oper:CreateTask>
提醒任务
问题:
我不希望为请求生成客户端存根类,但也许我应该使用CXF来定义服务类。这有什么好处
是否有其他首选的有效负载填充方法。在我的用例中,这个(子)流将从路由器调用,因此我不会传递任何会改变消息的相关信息
旁白:也许对于工作类型名称“提醒任务”,我应该提取到mule-app.properties并使用XSLT填充到最终请求中
谢谢
Rich要在流中设置有效负载,可以使用以下任一方法
编写一个将XML请求作为字符串的组件(JavaBean),然后将该字符串作为组件的返回。此组件应该是流中的第一个消息处理器
编写一个组件(JavaBean),将文件中的XML请求读入字符串,然后将该字符串作为组件的返回。此组件应该是流中的第一个消息处理器
使用入站端点(文件或JMS)作为流的入口点。这些入站数据可以从指定的路径读取。这样,您的输入可以是动态的。您可以多次执行不同请求的流,而无需每次启动Mule服务器
以下链接中提供了有关Mule文件和JMS端点的更多信息
接下来,对于工作类型名称的XSLT填充,可以使用XML模块中的Mule XSLT Transformer。更多关于这方面的信息,请访问以下链接
希望这有帮助。我认为最合理的解决方案是使用文件传输。您好,谢谢您的回复。我将按照建议使用文件连接器,并让您知道它是如何工作的。@Richard Fanning,您使用这个案例的更好解决方案是什么?
<flow name="createWorkflowTask" doc:name="createWorkflowTask">
<set-payload value="<oper:CreateTask xmlns:oper="http://api.abc.com/workflow/operationtypes"><workType><Name>Reminder Task</Name></workType><activitySubject><GenericSubject>Richard Fanning</GenericSubject></activitySubject><description>This is a Mule generated Reminder Task</description></oper:CreateTask>" doc:name="Set Payload"/>
<cxf:proxy-client doc:name="SOAP" enableMuleSoapHeaders="true" payload="body"/>
<http:outbound-endpoint exchange-pattern="one-way" method="POST" address="http://localhost:6081/workflow/services/ActivityServices" doc:name="HTTP"/>
</flow>