【发布时间】:2013-11-20 03:24:51
【问题描述】:
在这里,我的 java 组件返回了一个 arrylist,我正在使用 Collection 拆分器拆分它,并窃听列表对象。 但是当我改变我原来的paylaod时,在窃听之后它就不起作用了。我得到了类转换异常 CopyOnWriteArrayList 不能强制转换为 java.lang.String。我认为拆分的对象在流程结束时被聚合,而不使用任何额外的 聚合器,我不明白为什么我没有通过设置有效负载转换器获得更改的有效负载。
以下是流程源码-
<flow name="StandaloneTestFlow1" doc:name="StandaloneTestFlow1">
<http:inbound-endpoint exchange-pattern="request-response" doc:name="HTTP" address="http://0.0.0.0:10114/jaxbtest"/>
<cxf:jaxws-service serviceClass="com.standalone.test.StandaloneTest" doc:name="SOAP"/>
<component doc:name="Java">
<method-entry-point-resolver>
<include-entry-point method="getxmlString"/>
</method-entry-point-resolver>
<spring-object bean="standalonBean"/>
</component>
<collection-splitter doc:name="Collection Splitter"/>
<mulexml:jaxb-object-to-xml-transformer name="autoBeanToSmartxml" jaxbContext-ref="testJaxbContext"/>
<object-to-string-transformer doc:name="Object to String"/>
<wire-tap>
<vm:outbound-endpoint address="vm://testJaxbvm"/>
</wire-tap>
<set-payload value="adfafasdfasdfasd " doc:name="Set Payload"/>
</flow>
以下是异常堆栈-
org.apache.cxf.interceptor.Fault: java.util.concurrent.CopyOnWriteArrayList cannot be cast to java.lang.String
at org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:116)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
【问题讨论】:
-
请发布完整的堆栈。另外请提高您的声誉:有很多问题您没有接受答案。
标签: jaxb mule jaxb2 mule-studio