Apache CXF Web服务在AJAX调用时失败

时间:2011-12-14 10:33:20

标签: ajax web-services cxf

我们开发了基于Apache CXF的网络服务。

使用APIGEE或使用JaxWsProxyFactoryBeanApache CXF的一个clinet)正常访问时,此功能正常。但是当我试图通过AJAX调用提供SOAP地址来访问它时,它给了我以下异常:

INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No such operation:  (HTTP GET PATH_INFO: /tata-ws-1.0/TataWeb)
        at org.apache.cxf.interceptor.URIMappingInterceptor.handleMessage(URIMappingInterceptor.java:77)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
        ...

这是我点击按钮时发生的AJAX调用代码

<a onclick="sendRequest('GET','http://localhost:8080/tata-ws-1.0/services/TataWeb')"href="#">

获取数据:

function sendRequest(method, url)
{
    method == 'POST';
    {
        http.open(method,url,true);
        http.onreadystatechange = handleResponse;
        http.send(null);
    }
}

WSDL的URL是正确的,因为我使用时 http://localhost:8080/tata-ws-1.0/services/TataWeb?wsdl它显示了该Web服务的WSDL。

请分享您的意见。 感谢。

1 个答案:

答案 0 :(得分:0)

您需要发送SOAP请求而不是常规HTTP请求。 最好的方法是使用这样的东西: http://archive.plugins.jquery.com/project/jqSOAPClient