zoukankan      html  css  js  c++  java
  • java调用CXF WebService接口的两种方式

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

    2.静态调用

            // 创建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);

    3.动态调用:

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

  • 相关阅读:
    服务器响应状态码
    细说同域-同父域-跨域
    细说Ajax跨域
    为SQL缓存通知启用数据库
    使用PATINDEX()判断含有[A-Z]、[a-z]、[0-9]之外的字符
    记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
    谈谈如何在面试中发掘程序猿的核心竞争力
    “属性”与“特性”区别
    【转】安卓手机无法安装软件的原因总结
    【转】自学android半年,已从.net转型成android程序员
  • 原文地址:https://www.cnblogs.com/lucky-girl/p/4218936.html
Copyright © 2011-2022 走看看