Java “为什么我会遇到”的英文怎么说;无法分配inputstream有效负载”;部署以下mule流时是否由于ObjectStoreException?

Java “为什么我会遇到”的英文怎么说;无法分配inputstream有效负载”;部署以下mule流时是否由于ObjectStoreException?,java,xml,xsd,mule,mule-studio,Java,Xml,Xsd,Mule,Mule Studio,我的mule流日志中出现以下异常: ERROR 12/09/13 22:33:18 (rg.mule.module.logging.DispatchingLogger:341 ) <org.mule.exception.DefaultMessagingExceptionStrategy> ******************************************************************************** Message

我的mule流日志中出现以下异常:

ERROR 12/09/13 22:33:18 (rg.mule.module.logging.DispatchingLogger:341 ) <org.mule.exception.DefaultMessagingExceptionStrategy>
********************************************************************************
Message               : InputStream payload can't be distributed in a cluster
Type                  : org.mule.api.store.ObjectStoreException
Code                  : MULE_ERROR--2
JavaDoc               : mulesoft.org/docs/site/current3/apidocs/org/mule/api/store/ObjectStoreException.html
********************************************************************************
Exception stack is:
1. InputStream payload can't be distributed in a cluster (org.mule.api.store.ObjectStoreException)
  com.mulesoft.mule.cluster.hazelcast.HazecastQueueObjectStoreAdapter:52 
********************************************************************************
Root Exception stack trace:
org.mule.api.store.ObjectStoreException: InputStream payload can't be distributed in a cluster
        at com.mulesoft.mule.cluster.hazelcast.HazecastQueueObjectStoreAdapter.validatePayloadType(HazecastQueueObjectStoreAdapter.java:52)
        at com.mulesoft.mule.cluster.hazelcast.HazecastQueueObjectStoreAdapter.store(HazecastQueueObjectStoreAdapter.java:34)....
********************************************************************************
错误12/09/13 22:33:18(rg.mule.module.logging.DispatchingLogger:341)
********************************************************************************
消息:InputStream负载无法在群集中分布
类型:org.mule.api.store.ObjectStoreException
代码:MULE_错误--2
JavaDoc:mulesoft.org/docs/site/current3/apidocs/org/mule/api/store/ObjectStoreException.html
********************************************************************************
异常堆栈是:
1.InputStream负载不能在集群中分发(org.mule.api.store.ObjectStoreException)
com.mulesoft.mule.cluster.hazelcast.HazecastQueueObjectStoreAdapter:52
********************************************************************************
根异常堆栈跟踪:
org.mule.api.store.ObjectStoreException:InputStream负载不能在集群中分发
位于com.mulesoft.mule.cluster.hazelcast.hazecast队列objectstoreadapter.validatePayloadType(hazecast队列objectstoreadapter.java:52)
在com.mulesoft.mule.cluster.hazelcast.HazecastQueueObjectStoreAdapter.store(HazecastQueueObjectStoreAdapter.java:34)。。。。
********************************************************************************
我的骡子流是:

<flow name="hawkeye-mule-heartbeat-history-reapingFlow" doc:name="hawkeye-mule-heartbeat-history-reapingFlow">
    <poll frequency="${hb.historical.polling.interval}" doc:name="Poll">
        <http:outbound-endpoint exchange-pattern="request-response" host="${hb.rest.host}" port="${hb.rest.port}" 
            path="${hb.rest.baseURI}/history?expiry=${hb.historical.expiry}" method="DELETE" doc:name="HTTP" mimeType="application/json"/>
    </poll>
    <byte-array-to-string-transformer doc:name="Byte Array to String"/>
    <logger message="hawkeye.mule.heartbeat.history.reaping HTTP Request: ${hb.rest.protocol}://${hb.rest.host}:${hb.rest.port}${hb.rest.baseURI}/history?expiry=${hb.historical.expiry}" 
        level="DEBUG" category="heartbeatReaping" doc:name="HTTP Request logger"/>
    <logger message="hawkeye.mule.heartbeat.history.reaping reaped heartbeats" level="INFO" category="heartbeatReaping" doc:name="Log Heartbeat Reaper" />
</flow>


我记录了消息负载和响应代码,这就是目标,但删除了它以尝试消除异常,但没有任何效果。这个mule流在mule studio中本地运行,没有问题,但是当它部署在我们的集群上时,我得到了上面的异常。骡子医生帮不了什么忙。任何建议都将不胜感激。

这是因为在集群模式下,Mule序列化消息有效负载,并在流的消息源中跨集群共享它们。在您的例子中,源是
poll
元素

这就是说,失败看起来像一个bug:这应该可以正常工作。作为一种解决方法,您能否尝试在轮询器中序列化到
字节[]

<poll frequency="${hb.historical.polling.interval}">
    <http:outbound-endpoint exchange-pattern="request-response" host="${hb.rest.host}" port="${hb.rest.port}" 
        path="${hb.rest.baseURI}/history?expiry=${hb.historical.expiry}"
        method="DELETE" mimeType="application/json">
       <response>
         <byte-array-to-string-transformer />
       </response>
    </http:outbound-endpoint>
</poll>


但是由于您使用的是EE,最好是联系MuleSoft支持部门:这可能是一个已经修复的bug。他们会通知您,提供补丁等等。

引发ObjectStoreException的原因是因为我需要通过向flow元素添加属性processingStrategy=“synchronous”来明确告诉mule处理策略是同步的


然而,现在还不清楚为什么我需要明确地告诉mule这个流处理策略是同步的。mule提供的文档使我相信,如果没有提供,mule会选择正确的策略。

感谢您的建议。我尝试了您推荐的内容,但mule抱怨:发现以元素“byte array to string transformer”开头的内容无效。此时不需要任何子元素。我能够将byte[]transformer ref添加到http端点,但这也没有解决我的问题。流工作,HTTP请求被发送,它的行为正常,但我不能记录任何东西,我只是得到ObjectStoreException。我将尝试联系mule支持部门,看看他们有什么要说的。好的。同时,你能尝试一下我在答案中添加的
包装器吗?好的,你最初的建议很好,我忘了打开outbound endpoint标记。不幸的是,这并没有阻止上述异常的发生。我想我已经解决了这个问题,下面将给出一个答案。非常感谢你的帮助!无论如何,我很想知道
包装器是否有任何效果,如果你有机会尝试一下的话。收到。谢谢你提供的额外信息。我猜通过强制处理策略为同步,您将执行锁定到单个节点,从而禁用强制集群序列化?啊,这不说明我不是骡子群专家吗?:)致电MuleSoft:)