我对 mule 工作室很陌生。
这是环境设置。
VM1 = Windows 7、Visual Studio 2012、IIS 7。托管在 IIS7 中的 .net 4.5 WCF Web 服务,其操作接受字符串并返回字符串。
VM2 = Ubuntu 13.4 OpenJDK 1.7.0_25 Mule Studio 3.5 社区版。
我创建了一个带有出站端点的 JAXWS-Client,我通过单击从 WSDL 生成并输入托管在VM1上的 IIS 中的 .net WCF Web 服务的 URL 来完成此操作。那很好。
然后,我在入站服务和出站客户端之间创建了一个带有 jaxws-Service 的入站端点,其中有一个记录器和一个字符串对象。
如果我设置一个香草入站端点(没有肥皂)并使用一个简单的 html 表单来发布它一切正常,我会得到一个字符串返回给浏览器。但是,当流在出站端点之前到达 Soap 组件时,添加 Soap 组件会导致调度程序异常。
org.mule.api.transport.DispatchException:java.lang.reflect.Method 无法转换为 java.lang.String。无法通过端点路由事件:org.mule.module.cxf.CxfOutboundMessageProcessor。消息有效负载的类型:字符串
<flow name="testtwoFlow1" doc:name="testtwoFlow1">
<http:inbound-endpoint exchange-pattern="request-response" path="SimplePing" doc:name="HTTP" host="0.0.0.0" port="8081"/>
<cxf:jaxws-service serviceClass="TestTwo.IPing" doc:name="SOAP" />
<logger level="INFO" doc:name="Logger"/>
<object-to-string-transformer doc:name="Object to String"/>
<flow-ref name="testtwoFlow3" doc:name="Flow Reference"/>
</flow>
<sub-flow name="testtwoFlow3" doc:name="testtwoFlow3">
<cxf:jaxws-client operation="SimplePing" serviceClass="TestTwo.IPing" enableMuleSoapHeaders="true" doc:name="SOAP"/>
<logger level="INFO" doc:name="Logger"/>
<http:outbound-endpoint exchange-pattern="request-response" host="192.168.0.2" port="80" path="MuleExperiments/Ping.svc" method="POST" doc:name="HTTP" />
</sub-flow>
如果显示入站服务与出站客户端交互的示例,我已经进行了广泛的谷歌搜索,并且我一直在做很多事情。或者描述抛出的异常、导致它的原因以及如何解决它。我猜这很可能是因为服务和客户端是从同一个 WSDL 生成的,但我没想到这会是一个真正的问题。或者在我的 cxf:jaxws-service & cxf:jaxws-service 服务类是相同的。
在这个时刻,我的目标是简单地输入/输出字符串