我是M子的新手。

我尝试使用SOAP创建一个简单的登录流程,该流程将返回XML响应。我的方法是使用XML发送数据,然后将登录数据保存在转换代码中,保存数据后,返回的数据将生成到xml响应中。但是我出现了错误:“有两个与输入完全匹配的变压器”。我不明白为什么会这样。
请帮我解决这个问题。

这是我的流程代码:

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0"

port="8081" doc:name="HTTP Listener Configuration"/>
<cxf:configuration name="CXF_Configuration" enableMuleSoapHeaders="true" initializeStaticBusInstance="true" doc:name="CXF Configuration"/>
<mulexml:jaxb-context name="myJaxb" packageNames="com.test.service" doc:name="JAXB Context"/>

<flow name="LoginFlow" initialState="started">
<http:listener config-ref="HTTP_Listener_Configuration" path="/Login" doc:name="HTTP"/>
<cxf:proxy-service configuration-ref="CXF_Configuration" doc:name="CXF" namespace="http://www.test.co.id/SOA/service/1.0" payload="body" port="LoginPort" service="LoginService" wsdlLocation="service/login-test.wsdl"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<mulexml:dom-to-xml-transformer returnClass="java.lang.String" doc:name="DOM to XML"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<custom-transformer class="com.test.transform.XMLTransform" doc:name="XML To Java" returnClass="com.test.service.LoginResponse"/>
<mulexml:jaxb-object-to-xml-transformer jaxbContext-ref="myJaxb" doc:name="JAXB Object to XML"/>
<mulexml:xml-to-dom-transformer doc:name="XML to DOM"/>
</flow>

错误堆栈:
1. There are two transformers that are an exact match for input: "class org.mule.module.cxf.CxfInboundMessageProcessor$1", output: "class [B". Transformers are: "XmlToByteArray(class org.mule.module.xml.transformer.XmlToDomDocument)" and "_ObjectToByteArray(class org.mule.transformer.simple.ObjectToByteArray)" (org.mule.api.registry.ResolverException)
org.mule.registry.TypeBasedTransformerResolver:166 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/registry/ResolverException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
org.mule.api.registry.ResolverException: There are two transformers that are an exact match for input: "class org.mule.module.cxf.CxfInboundMessageProcessor$1", output: "class [B". Transformers are: "XmlToByteArray(class org.mule.module.xml.transformer.XmlToDomDocument)" and "_ObjectToByteArray(class org.mule.transformer.simple.ObjectToByteArray)"
at org.mule.registry.TypeBasedTransformerResolver.getNearestTransformerMatch(TypeBasedTransformerResolver.java:166)
at org.mule.registry.TypeBasedTransformerResolver.resolve(TypeBasedTransformerResolver.java:100)
at org.mule.registry.MuleRegistryHelper.resolveTransformer(MuleRegistryHelper.java:283)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

感谢您的回答。 :)

最佳答案

我怀疑这是由于最后的DOM-to-XML组件所致。
您可以删除它并尝试一下吗,因为在DOM-to-XML之前有Jaxb-to-xml组件

关于xml - Mule ESB错误>>“有两个与输入完全匹配的变压器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29741346/

10-13 07:02