java通过axis2调取webservice接口
来源:互联网 发布:铠龙ni80 发热丝数据 编辑:程序博客网 时间:2024/06/17 09:21
1 首先pom.xml引入axis2 maven配置
<dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-kernel</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-codegen</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-adb</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-transport-local</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-transport-http</artifactId> <version>1.6.1</version> </dependency>
2 自己写个webservice 服务端接口
比如:http://localhost:8080/webServer/cxf/cxftest?wsdl
3 调用webservice接口
(1)调不带@WebParam参数的方法
try { String serviceUrl = "http://192.168.1.235:8080/webServer/cxf/cxftest?wsdl"; String tns = "http://service.fxl.com/"; String methodName = "getPass"; //使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); //设置2秒超时 options.setTimeOutInMilliSeconds(2000L); //指定调用WebService的URL EndpointReference targetEPR = new EndpointReference(serviceUrl); options.setTo(targetEPR); //指定接口方法的参数值 Object[] opAddEntryArgs = new Object[] {"admin", 1}; //指定方法返回值的数据类型的Class对象 Class[] classes = new Class[] { String.class }; //指定调用的方法及WSDL文件的命名空间 QName("targetNamespace","method Name"); QName qName = new QName(tns, methodName); //调用getVersioin方法并输出该方法的返回值, //返回对象是一个Object的数组,拿数组的第一个值,转换强转即可 Object result = serviceClient.invokeBlocking(qName, opAddEntryArgs, classes)[0]; //OMElementImpl ele = (OMElementImpl) result; System.out.println("返回值result=" + result.toString()); } catch (Exception e) { e.printStackTrace(); }
(1)调带@WebParam参数的方法
try { String serviceUrl = "http://192.168.1.235:8080/webServer/cxf/cxftest?wsdl"; String tns = "http://service.fxl.com/"; String methodName = "getAuth"; //使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); //设置2秒超时 options.setTimeOutInMilliSeconds(2000L); //指定调用WebService的URL EndpointReference targetEPR = new EndpointReference(serviceUrl); options.setTo(targetEPR); Map<String, String> params = new HashMap<String, String>(); params.put("userName", "admin"); params.put("password", "123456"); //添加参数并获取方法 OMElement method = getMethod(tns, methodName, params); OMElement result = serviceClient.sendReceive(method); //result就是获取的数据,剩下需要自己解析 System.out.println(result.toString()); } catch (Exception e) { e.printStackTrace(); }
/** * 获取请求方法 * @param tns 命名空间 * @param methodName 方法名 * @param params 参数 * @return */ private static OMElement getMethod(String tns, String methodName, Map<String, String> params){ OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace(tns, ""); OMElement method = fac.createOMElement(methodName, omNs); if(params != null) { for (String key : params.keySet()) { OMElement param = fac.createOMElement(key, null); param.addChild(fac.createOMText(param, params.get(key))); method.addChild(param); } method.build(); } return method; }
阅读全文
0 0
- java通过axis2调取webservice接口
- Java Axis2调用WebService接口异常解决方案
- Java Axis2发布及调用webservice接口
- java+axis2-1.6.2 webservice接口开发
- java使用axis2调用webservice接口实例
- java使用axis2调用webservice接口实例
- Axis2 调用Webservice 接口
- axis2 开发webservice 接口
- java通过axis2调用SAP接口
- 通过eclipse和axis1.4.1(axis2)Java生成webservice
- java axis2 webservice 接口的开发搭建和demo
- axis2 远程调用webservice接口
- 使用axis2发布webservice接口
- WebService接口客户端(axis2)
- Java Axis2搭建WebService
- Java通过webservice接口获取天气信息
- Java通过webservice接口获取天气信息
- java 调用axis2 webservice示例
- Robot Framework 创建测试库
- Vuex 模块化实现待办事项的状态管理
- nodejs学习笔记一
- unicodedecodeerror 'gbk' codec can't decode
- rsync服务与搭建详解
- java通过axis2调取webservice接口
- Spring集成PageHelper的简单用法
- C语言enum枚举类型解析(转)
- 【剑指offer】题48:不能被继承的类
- Lua与C的交互(3)
- Java前端控制器模式
- Android Studio:Could not find method android() for arguments
- Serverless架构用这5大优势,挽救了后来7亿用户的Instagram
- 功能: 遍历窗体内部所有的控件 (学习日记 2017-07-06)