关于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:35
好棒!感谢楼主~
点赞 回复 分享
发布于 2016-11-10 13:34

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务