最近把XFire框架搭建的一个webservice换成CXF框架。访问webservice的客户端是C#写的。客户端调用webservice,数据能在客户端得到。显然是成功了。
但其中在VS中添加CXF服务(Add Service Reference)时,当然首先输入地址(Address),点击go,看看能不能连接服务,结果是能的。但与此同时,tomcat在命令行窗口有警告输出。如果不理会这些警告,自然没有下文了。
警告信息如下:
2011-9-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)
2011-9-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),加上之后,第二个警告信息果然没有了,但出现了另一个警告信息
2011-9-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.
我有些一筹莫展,希望大家来看看,说不定在你那,你已经遇到过,而且解决了。如能帮助,感激之至。
-----------------------------------------------------------------------------------
这么长时间了,都没人回答我。。。