首页 > 开发 > Java > 正文

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

2024-07-14 08:43:51
字体:
来源:转载
供稿:网友

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

Java,CXF,WebService

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类,服务器端只要提供接口名和路径就可以方便的调用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表