关于webservice框架cxf遇到的一些问题

关于webservice框架cxf遇到的一些问题

代码贴上:
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.java1234.service.HelloWorld;
import com.java1234.service.impl.HelloWorldImpl;

public class Server {

public static void main(String[] args) {
    System.out.println("webservice start!");
    HelloWorld helloWorldImpl = new HelloWorldImpl();
    String address = "http://192.168.0.101/hello?wsdl";
    // Endpoint.publish(address, helloWorldImpl);
    JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
    factoryBean.setAddress(address);
    factoryBean.setServiceClass(HelloWorld.class);
    factoryBean.setServiceBean(helloWorldImpl);
    factoryBean.create();
    System.out.println("webservice started!");
}

}

警告: Interceptor for {http://impl.service.test.com/}TestService has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No binding operation info while invoking unknown method with params unknown.

解决方式:
将访问地址修改为http://localhost:8080/cxf/TestService?wsdl即可加入了?wsdl

警告: Interceptor for {http://impl.service.test.com/}TestService 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.

原因是soap协议不匹配,要使用soap1.2协议
在接口或实现类上声明,注意要引入geronimo-jaxws_2.2_spec-1.0.jar包
@BindingType(value = “http://www.w3.org/2003/05/soap/bindings/HTTP/“) 或
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)

cxf 做webservice客户端使用soap1.2协议