第一个ESB应用程序:HTTP入站端点(请求 - 响应) - > javaComponent1 - > http出站端点(请求 - 响应) - > JavaComponent2。 第二个ESB应用程序:HTTP入站端点(请求 - 响应) - > javacomponent3
在我的情况下,第二个ESB应用程序的HTTP入站端点(请求 - 响应)将响应发送回第一个ESB应用程序的http出站端点(请求 - 响应)。
我的问题和查询:第二个ESB应用程序的HTTP入站端点(请求 - 响应)应该发送一个java对象作为请求的有效负载,该请求将被发送回第一个ESB应用程序的http出站端点(请求 - 响应)。 JavaComponent2应该能够读取第一个ESB应用程序的http出站端点(请求 - 响应)接收的对象并进一步处理它。
如何将我的Java对象从第二个应用程序的http端点发送到第一个应用程序的http出站端点?我不能在这里使用序列化。
答案 0 :(得分:0)
在从第二个Mule应用程序发送对象之前,您可以使用object to bytearray transformer。然后在第一个mule应用程序中的http出站端点之后使用bytearray到Object变换器,同时从第二个mule应用程序接收响应
First App
<flow name="test_serializableFlow1" doc:name="test_serializableFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP"/>
<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" method="POST" doc:name="HTTP"/>
<logger message="Before transformer #[payload]" level="INFO" doc:name="Logger"/>
<byte-array-to-object-transformer doc:name="Byte Array to Object"/>
<logger message="After transformer #[payload]" level="INFO" doc:name="Logger"/>
</flow>
第二个应用
<flow name="ssFlow1" doc:name="ssFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP"/>
<component class="Test" doc:name="Java"/>
<object-to-byte-array-transformer doc:name="Object to Byte Array"/>
</flow>