您的位置:首页 > 其它

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

2014-07-19 00:00 423 查看
在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的调用方式比较简单,便于操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: