关于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协议
 
<jaxws:client id="cdsPatientServices" address="http://localhost:8181/cxf/v1/soap/patient"
bindingId="http://www.w3.org/2003/05/soap/bindings/HTTP/"
serviceClass="net.carefx.cds.v1.service.patientservices.CdsPatientServices" />

全部评论
好棒!感谢楼主~
点赞 回复 分享
发布于 2016-11-10 13:34
非常棒的分享!
点赞 回复 分享
发布于 2016-11-10 13:35

相关推荐

感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务