标签:
项目需求上需要调用另一个合作伙伴的webservice接口,之前用的是sax的调用方式,开始摸索这个,感觉这个也挺简单的,现在把自己的实现过程分享给大家,写的不好的地方,望大家勿喷。
详细代码如下:
package com.ancs.oa; import java.util.Date; import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; /** * * @ClassName:MessageService * @Description:调用webservice传入5个参数 * @author luckyboyguo@126.com * @date:2014年12月25日下午5:16:21 */ public class MessageService { public static Object ToOaMessage(String a,String b,String c,String d) throws AxisFault{ // 使用RPC方式调用WebService RPCServiceClient client=new RPCServiceClient(); Options option=client.getOptions(); // 指定调用WebService的URL EndpointReference targetEPR =new EndpointReference("你的webservice地址"); option.setTo(targetEPR); // 指定要调用的plus方法及WSDL文件的命名空间 //http://test QName opAddEntry =new QName("http://webService.oa.ancs.com","docMessageInsert"); // 指定plus方法的参数值 Object[] opAddEntryArgs = new Object[] {a,b,c,d,new Date() }; // 指定plus方法返回值的数据类型的Class对象 Class[] classes = new Class[] { String.class }; // 调用plus方法并输出该方法的返回值 try { return client.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]; } catch (AxisFault e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
标签:
原文地址:http://blog.csdn.net/luckyboyguo/article/details/42148909