我们开发了基于Apache CXF
的网络服务。
使用APIGEE
或使用JaxWsProxyFactoryBean
(Apache 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。
请分享您的意见。 感谢。
答案 0 :(得分:0)
您需要发送SOAP请求而不是常规HTTP请求。 最好的方法是使用这样的东西: http://archive.plugins.jquery.com/project/jqSOAPClient