软件编程
位置:首页>> 软件编程>> java编程>> Java调用CXF WebService接口的两种方式实例

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

作者:小飞侠-2  发布时间:2023-11-09 02:25:11 

标签:java,cxf,webservice,接口

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

来源:https://blog.csdn.net/qq_26562641/article/details/71534715

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com