Mule代理服务无法在命名空间中找到定义

时间:2012-10-12 16:18:19

标签: namespaces mule

我在mule中设置了一些代理服务,但仍然在学习。出于某种原因,当命名空间和服务名称正确时,此流程不起作用。有人看到我的错误吗?

感谢您的时间

<flow name="UPCFlow1" doc:name="UPCFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="4040" path="upc" doc:name="HTTP"/>
    <cxf:proxy-service namespace="http://searchupc.com/" service="GetProduct" payload="envelope" wsdlLocation="http://www.searchupc.com/service/UPCSearch.asmx?WSDL"  doc:name="SOAP" port="UPCSearchSoap"/>
<http:outbound-endpoint address="http://www.searchupc.com/supc/service/UPCSearch.asmx"
    exchange-pattern="request-response" doc:name="HTTP"/>
</flow>

这是来自堆栈跟踪

INFO  2012-10-12 11:06:44,739 [main] org.mule.module.launcher.application.DefaultMuleApplication: App 'upc' never started, nothing to dispose of
Exception in thread "main" org.mule.module.launcher.DeploymentInitException: ServiceConstructionException: Could not find definition for service {http://searchupc.com/}GetProduct.

1 个答案:

答案 0 :(得分:0)

您的配置存在问题:服务名称为“UPCSearch”而不是“GetProduct”。

这有效:

<flow name="UPCFlow1" doc:name="UPCFlow1">
    <http:inbound-endpoint exchange-pattern="request-response"
        host="localhost" port="4040" path="upc" doc:name="HTTP" />
    <cxf:proxy-service namespace="http://searchupc.com/"
        service="UPCSearch" payload="envelope"
        wsdlLocation="http://www.searchupc.com/service/UPCSearch.asmx?WSDL"
        doc:name="SOAP" port="UPCSearchSoap" />
    <http:outbound-endpoint
        address="http://www.searchupc.com/supc/service/UPCSearch.asmx"
        exchange-pattern="request-response" doc:name="HTTP" />
</flow>