java调用(axis2)WebService传递对象类型参数(源码)
2017-06-14 12:07
519 查看
温馨提示:axis2 jar包哟
public static String pubRemoteFuc() {
String endpoint = "http://cnblogs.com/qgc/xxxx/Service?wsdl";
String result = "error";
Service service = new Service();
Call call;
//参数对象
SearchInfoVo d=new SearchInfoVo();
d.setName("李建");
d.setCardNum("44xxxxx");
Object[] object = new Object[1];
object[0] = d;//Object是用来存储方法的参数
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);// 远程调用路径
QName qn = new QName("http://nciic.com.cn", "check" ); //接口的命名空间,请根据您的实际接口填写,和方法名称:<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:nci="http://nciic.com.cn"
call.setOperationName(qn);
//设置参数的类型(这里是实体对象“SearchInfoVo”)http://cnblogs.com/qgc
call.registerTypeMapping(SearchInfoVo.class,qn,
new BeanSerializerFactory(SearchInfoVo.class, qn),
new BeanDeserializerFactory(SearchInfoVo.class, qn));
call.addParameter("arg0", qn, ParameterMode.IN ); //"arg0"不用改哟,我这里只有一个参数,并且参数是一个实体对象 http://cnblogs.com/qgc // // 设置参数名:http://cnblogs.com/qgc
// call.addParameter("name", // 参数名
// XMLType.XSD_STRING,// 参数类型:String
// ParameterMode.IN);// 参数模式:'IN' or 'OUT'
/* // 设置参数名:http://cnblogs.com/qgc
call.addParameter("cardNum", // 参数名
XMLType.XSD_STRING,// 参数类型:String
ParameterMode.IN);// 参数模式:'IN' or 'OUT'
// 设置参数名:http://cnblogs.com/qgc
call.addParameter("citizenId", // 参数名
XMLType.XSD_STRING,// 参数类型:String
ParameterMode.IN);// 参数模式:'IN' or 'OUT'
*/ // 设置返回值类型:
//call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String
call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String
result = (String) call.invoke(object);// 远程调用
System.out.println(result);
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) throws Exception {
pubRemoteFuc();//调用
}
public static String pubRemoteFuc() {
String endpoint = "http://cnblogs.com/qgc/xxxx/Service?wsdl";
String result = "error";
Service service = new Service();
Call call;
//参数对象
SearchInfoVo d=new SearchInfoVo();
d.setName("李建");
d.setCardNum("44xxxxx");
Object[] object = new Object[1];
object[0] = d;//Object是用来存储方法的参数
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);// 远程调用路径
QName qn = new QName("http://nciic.com.cn", "check" ); //接口的命名空间,请根据您的实际接口填写,和方法名称:<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:nci="http://nciic.com.cn"
call.setOperationName(qn);
//设置参数的类型(这里是实体对象“SearchInfoVo”)http://cnblogs.com/qgc
call.registerTypeMapping(SearchInfoVo.class,qn,
new BeanSerializerFactory(SearchInfoVo.class, qn),
new BeanDeserializerFactory(SearchInfoVo.class, qn));
call.addParameter("arg0", qn, ParameterMode.IN ); //"arg0"不用改哟,我这里只有一个参数,并且参数是一个实体对象 http://cnblogs.com/qgc // // 设置参数名:http://cnblogs.com/qgc
// call.addParameter("name", // 参数名
// XMLType.XSD_STRING,// 参数类型:String
// ParameterMode.IN);// 参数模式:'IN' or 'OUT'
/* // 设置参数名:http://cnblogs.com/qgc
call.addParameter("cardNum", // 参数名
XMLType.XSD_STRING,// 参数类型:String
ParameterMode.IN);// 参数模式:'IN' or 'OUT'
// 设置参数名:http://cnblogs.com/qgc
call.addParameter("citizenId", // 参数名
XMLType.XSD_STRING,// 参数类型:String
ParameterMode.IN);// 参数模式:'IN' or 'OUT'
*/ // 设置返回值类型:
//call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String
call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String
result = (String) call.invoke(object);// 远程调用
System.out.println(result);
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) throws Exception {
pubRemoteFuc();//调用
}
相关文章推荐
- 【工作记录0022】C#(.NET)调用Java开发的WebService(wsdl),客户端传递非string类型参数(int,double,bool等),而服务端无法获取到参数值的解决方案
- java利用axis2调用.net写的webservice,传递自定义的实体类参数
- java中传递参数的两种方式(int(基本类型),int[](对象类型))
- Ext.Net Js调用WebService方法以json对象传递参数
- java代码调用使用cxf搭建的webService服务传递对象
- ksoap调用cxf webservice传递类对象参数,返回类对象
- 面向对象语言(如Java)中:基本类型与对象在存储和参数传递上的区别
- .Net2.0调用Java的WebService Int Datetime 自定义类型 传递到WebService为空
- 实现在GET请求下调用WCF服务时传递对象(复合类型)参数
- 重新理解Java -- 类型、值、对象、参数传递
- axis2 webservice入门学识(JS,Java,PHP调用实例源码)
- Java传递基本类型:值传递,对象作为参数:引用传递
- Java中方法调用参数传递的方式是传值,尽管传的是引用的值而不是对象的值。(Does Java pass by reference or pass by value?)
- C#调用Java端Web服务(CXF)时发生Integer参数类型无法传递的问题
- axis2 webservice入门知识(JS,Java,PHP调用实例源码)
- JAVA本地方法调用(3)对象参数传递
- Gsoap调用java实现的webservice时,如何传递复杂数据类型?
- 关于SOAPpy传递对象参数调用WebService的问题总结
- JNI+opencv3+.dll+eclipse+vs2015:java调用c++传递String类型参数全过程
- PHP通过传递对象参数调用asp.net Webservice 服务