`
mapengfei00099
  • 浏览: 12981 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

axis和cxf框架客户端调用web Service

 
阅读更多

 在web Service领域,axis和cxf是常用的两种框架,在企业开发中常使用wsdl文件作为传输的形式,下面就这两种框架的客户端调用方式进行演示:

1axis方式:

  //以下省略try catch语句

String endpoint = "url";//调用的web Service的wsdl地址
            // 调用过程
            Service service = new Service();

            Call call = (Call) service.createCall();

            call.setTargetEndpointAddress(new java.net.URL(endpoint));

                     call.setOperationName(new javax.xml.namespace.QName("namespace","method"));//namespace命名空间,method方法名
            
         
            call.addParameter("paramName",
						            org.apache.axis.encoding.XMLType.XSD_STRING,
						            javax.xml.rpc.ParameterMode.IN);// param操作的参数,后面的参数是参数的类型

            call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型

            call.setUseSOAPAction(true);

            // 给方法传递参数,并且调用方法
    
            
               Object[] obj = new Object[] { text };//text为参数值
            Object result= call.invoke(obj);//调用web Service
          

            System.out.println("Result is : " + result);
            

 CXF 调用方式:

  JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        org.apache.cxf.endpoint.Client client = dcf.createClient("url");
        //url为调用webService的wsdl地址


        QName name=new QName("namespace","methodName");//namespace是命名空间,methodName是方法名
String param="paramvalue";//paramvalue为参数值
  Object[] objects=client.invoke(name,param); //调用web Service
  
        //输出调用结果
        System.out.println(objects[0].toString());

 相比之下,cxf的调用方式比较简单,便于操作

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics