【问题标题】:Getting the object out of the http response received从收到的 http 响应中获取对象
【发布时间】:2018-08-08 19:17:08
【问题描述】:

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

在我的情况下,第二个 ESB 应用程序的 HTTP 入站端点(请求-响应)将响应发送回第一个 ESB 应用程序的 http 出站端点(请求-响应)。

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

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

【问题讨论】:

    标签: mule


    【解决方案1】:

    您可以在从第二个 Mule 应用程序发送对象之前使用对象到字节数组转换器。然后在第一个 mule 应用程序中的 http 出站端点之后使用 bytearray 到 Object 转换器,同时接收来自第二个 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 应用程序之间传输的对象。这样做你会得到序列化异常。
    • 我认为你需要在发送之前序列化对象
    猜你喜欢
    • 2013-08-07
    • 2019-08-12
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多