Mule 从收到的http响应中获取对象

Mule 从收到的http响应中获取对象,mule,Mule,第一个ESB应用程序:HTTP入站端点(请求-响应)->javaComponent1->HTTP出站端点(请求-响应)->JavaComponent2。 第二个ESB应用程序:HTTP入站端点(请求-响应)->javacomponent3 在我的例子中,第二个ESB应用的HTTP入站端点(请求-响应)将响应发送回第一个ESB应用的HTTP出站端点(请求-响应) 我的问题和疑问:第二个ESB应用程序的HTTP入站端点(请求-响应)应发送一个java对象作为正在发送回第一个ESB应用程序的HTTP出

第一个ESB应用程序:HTTP入站端点(请求-响应)->javaComponent1->HTTP出站端点(请求-响应)->JavaComponent2。 第二个ESB应用程序:HTTP入站端点(请求-响应)->javacomponent3

在我的例子中,第二个ESB应用的HTTP入站端点(请求-响应)将响应发送回第一个ESB应用的HTTP出站端点(请求-响应)

我的问题和疑问:第二个ESB应用程序的HTTP入站端点(请求-响应)应发送一个java对象作为正在发送回第一个ESB应用程序的HTTP出站端点(请求-响应)的请求的有效负载。JavaComponent2应该能够读取第一个ESB应用程序的http出站端点(请求-响应)接收到的对象,并进一步处理它


如何将Java对象从第二个应用的http端点发送到第一个应用的http出站端点?我不能在这里使用序列化。

在从第二个Mule应用程序发送对象之前,您可以使用object to bytearray transformer。然后在第一个mule应用程序中的http出站端点之后使用bytearray to Object transformer,同时从第二个mule应用程序接收响应

第一个应用程序

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


Naveen这对在两个不同esb应用程序之间传输的对象不起作用。这样做会导致序列化异常。我认为您需要在发送之前序列化对象