1

我正在尝试在 mule 中使用“cxf:proxy-service”公开一个简单的问候 Web 服务。下面给出的是我的流程。

<flow name="WS_In">
    <http:inbound-endpoint address="http://localhost:8080/HelloService" exchange-pattern="request-response">
        <cxf:proxy-service  wsdlLocation="classpath:HelloService.wsdl" namespace="http://example.org/HelloService"/>
    </http:inbound-endpoint>        
    <component>             
        <prototype-object class="com.example.ServiceProxy">
        </prototype-object>
    </component>

    <echo-component></echo-component>
    <logger level="INFO"        />
</flow>

但它给了我如下错误:

2013-01-03 16:13:35,569 ERROR [main] construct.AbstractFlowConstruct (AbstractFlowConstruct.java:180) - Failed to stop service: WS_In
org.mule.api.lifecycle.LifecycleException: Lifecycle Manager 'WS_In.stage1' phase 'start' does not support phase 'dispose'

我的 ServiceProxy 类如下

public class ServiceProxy implements Callable, Initialisable 

请帮助我了解我缺少路径的地方。

4

2 回答 2

2

代替<cxf:proxy-service>元素中的属性“名称”,使用属性“服务”来指定服务名称。

于 2013-01-04T16:32:18.683 回答
1

试试这个...

  1. 从您的 WSDL 中获取服务名称并在 cxf:proxy-service 中使用它
  2. 在组件中直接使用类。

……

<flow name="WS_In">
    <http:inbound-endpoint address="http://localhost:8080/HelloService" exchange-pattern="request-response">
        <cxf:proxy-service  wsdlLocation="classpath:HelloService.wsdl" namespace="http://example.org/HelloService" service="HelloService"/>
    </http:inbound-endpoint>        
    <component class="com.example.ServiceProxy" />
    <echo-component></echo-component>
    <logger level="INFO"        />
</flow>
于 2013-01-03T21:51:55.507 回答