没有这样的操作:HTTP GET PATH_INFO:/ services / EchoUMO

时间:2013-03-04 10:30:03

标签: error-handling cxf echo mule sample

我从互联网上下载了mule的echo样本。我有1个java类

package org.mule.example.echo;

public class Echo
{
    public Echo()
    {
    }

    public String echo(String string)
    {
        return string;
    }
}

和xml文件

 <?xml version="1.0" encoding="UTF-8"?>
 <mule> 

 <flow name="EchoFlow">
        <inbound-endpoint address=":65082/services/EchoUMO" exchange-pattern="request-response"/>
        <cxf:jaxws-service serviceClass="org.mule.example.echo.Echo"/>
        <component>
            <singleton-object class="org.mule.example.echo.Echo" />
        </component>
    </flow>
</mule>

当我在浏览器中写道:65082 / services / EchoUMO时,我没有得到任何好结果。在我的控制台中,我看到了这个错误:

 WARN  2013-03-04 12:08:10,713 [[sample-echo].connector.http.mule.default.receiver.02] org.apache.cxf.phase.PhaseInterceptorChain: Interceptor for {http://echo.example.mule.org/}EchoService has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No such operation:  (HTTP GET PATH_INFO: /services/EchoUMO)
    at org.apache.cxf.interceptor.URIMappingInterceptor.handleMessage(URIMappingInterceptor.java:88)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)

你能解释一下我的情况吗?

当我在浏览器中编写:65082/services/EchoUMO时,我的浏览器会显示此页面:

<soap:Envelope>
    <soap:Body><soap:Fault>
        <faultcode>soap:Server</faultcode>
        <faultstring>No such operation: (HTTP GET PATH_INFO: /services/EchoUMO)</faultstring>
    </soap:Fault></soap:Body>
</soap:Envelope>

1 个答案:

答案 0 :(得分:0)

您的类不使用JAX-WS注释,因此您会收到错误。

您有两个选择:

  1. 保留当前课程并使用simple service,即<cxf:simple-service serviceClass="org.mule.example.echo.Echo"/>
  2. 按照here
  3. 所述,将JAX-WS注释添加到您的POJO