欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java调用CXF WebService接口的两种方式实例

时间:2022-12-05 12:53:42|栏目:JAVA代码|点击:

通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了。

1.静态调用

    // 创建WebService客户端代理工厂
    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    // 判断是否抛出异常
    factory.getOutInterceptors().add(new LoggingInInterceptor());
    // 注册webservice接口
    factory.setServiceClass(DeductionService.class);
    // 配置webservice地址
    factory.setAddress("http://localhost:7002/card/services/HelloWorld?wsdl");
    // 获得接口对象
    CxfService service = (CxfService) factory.create();
    // 调用接口方法
    String result = service.sayHello("aaaaaaaaaa");
    System.out.println("调用结果:" + result);
    // 关闭接口连接
    System.exit(0);

2.动态调用:

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    org.apache.cxf.endpoint.Client client = dcf
        .createClient("http://localhost:7002/card/services/HelloWorld?wsdl");
    // url为调用webService的wsdl地址
    QName name = new QName("http://dao.xcf.digitalchina.com/", "sayHello");
    // namespace是命名空间,methodName是方法名
    String xmlStr = "aaaaaaaa";
    // paramvalue为参数值
    Object[] objects;
    try {
      objects = client.invoke(name, xmlStr);
      System.out.println(objects[0].toString());
    } catch (Exception e) {
      e.printStackTrace();
    }

区别:

静态调用需要依赖service类,因为客户端调用cxf webservice接口的过程中需要服务器端提供service,很不方便,如果同一个项目中则没有区别。

动态调用完全不依赖service类,服务器端只要提供接口名和路径就可以方便的调用。

总结

上一篇:springboot集成junit编写单元测试实战

栏    目:JAVA代码

下一篇:解决mybatis-plus自动配置的mapper.xml与java接口映射问题

本文标题:Java调用CXF WebService接口的两种方式实例

本文地址:http://www.codeinn.net/misctech/220620.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有