实际上我们已经生成了JAX-WS Web服务,并且它运行良好。但现在我们想要使用Mule ESB的JMS。但是我无法配置它。
我已经尝试过Mule的代理服务器,它运行良好。但我们正试图将JMS置于HTTP端点之间。但肥皂的身体不能转移到另一端(即我们的服务) JMS服务器是ActiveMQ。
提前致谢,
从评论中复制流程 -
<flow name="finalFlow1" doc:name="finalFlow1">
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8888" contentType="text/xml" doc:name="HTTP" />
<jms:outbound-endpoint exchange-pattern="request-response"
queue="servicesQueue" doc:name="JMS" connector-ref="Active_MQ" />
<http:outbound-endpoint exchange-pattern="request-response"
method="POST" address="localhost:5050/MyServices" ; mimeType="text/xml"
contentType="text/xml" doc:name="HTTP" />
</flow>
答案 0 :(得分:1)
在您发布的流程中,您正在通过基于HTTP的入站端点使用该消息。如果您只想从JMS使用此消息并将其发送到另一个HTTP端点,则需要使用JMS入站
<flow name="finalFlow1" doc:name="finalFlow1">
<jms:inbound-endpoint exchange-pattern="request-response"
queue="servicesQueue" doc:name="JMS" />
<logger level="INFO" doc:name="Logger" />
<http:outbound-endpoint exchange-pattern="request-response"
host="localhost" port="5050" method="POST" doc:name="HTTP" path="MyServices"
mimeType="text/xml" />
</flow>
但是,这只会按原样发送有效负载,而不会将其转换为SOAP有效负载。如果要将从JMS消耗的消息转换为SOAP有效负载,则需要使用CXF
<flow name="finalFlow1" doc:name="finalFlow1">
<jms:inbound-endpoint exchange-pattern="request-response"
queue="servicesQueue" doc:name="JMS" />
<logger level="INFO" doc:name="Logger" message="#[payload]" />
<logger message="SOAP call started" level="INFO" doc:name="Logger"/>
<http:outbound-endpoint
mimeType="text/xml" doc:name="HTTP" exchange-pattern="request-response" method="POST" path="MyServices" host="localhost" port="5050">
<cxf:proxy-client payload="body"
enableMuleSoapHeaders="false">
<cxf:inInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingInInterceptor" />
</cxf:inInterceptors>
<cxf:outInterceptors>
<spring:bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
</cxf:outInterceptors>
</cxf:proxy-client>
</http:outbound-endpoint>
<logger message="SOAP call completed" level="INFO" doc:name="Logger"/>
</flow>
如果您只是想通过HTTP启动JMS消费,您可以使用Seba建议使用MuleRequester - https://github.com/mulesoft/mule-module-requester/blob/master/mulerequesterdemo/src/main/app/MuleRequesterDemo.xml
答案 1 :(得分:1)
如果您需要在流中间使用队列中的消息,您应该看一下:http://blogs.mulesoft.org/introducing-the-mule-requester-module