客户端(C#)调用CXF搭建的webservice的出现一些问题记录

时间:2022-09-11 07:18:43

最近把XFire框架搭建的一个webservice换成CXF框架。访问webservice的客户端是C#写的。客户端调用webservice,数据能在客户端得到。看起来显然是成功了。

但其中在VS中添加CXF服务(Add Service Reference)时,当然首先输入地址(Address),点击go,看看能不能连接服务,结果是能的。但与此同时,tomcat在命令行窗口有警告输出。如果不理会这些警告,自然没有下文了。

警告信息如下:

2015-11-15 16:25:54 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
警告: Interceptor for {http://ACOService.com/}HelloWorldImplService has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No such operation: (HTTP GET PATH_INFO: /cxf-project/services/HelloWorld) 2015-11-15 16:25:55 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
警告: Interceptor for {http://ACOService.com/}HelloWorldImplService has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.

第一个警告信息,我网上搜了搜,大部分都是说,服务地址没写全,比如http://192.168.1.127:8080/cxf-project/services/HelloWorld(应该是http://192.168.1.127:8080/cxf-project/services/HelloWorld?wsdl),但我是写全的。我不知道什么地方出错了。

第二个警告信息,同样google了一下,要绑定@BindingType(value=SOAPBinding.SOAP12HTTP_BINDING),加上之后,第二个警告信息果然没有了,但出现了另一个警告信息

2015-11-15 16:29:04 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
警告: Interceptor for {http://ACOService.com/}HelloWorldImplService has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: MustUnderstand headers: [{http://www.w3.org/2005/08/addressing}Action, {http://www.w3.org/2005/08/addressing}To]
are not understood.