Java访问非.NET的webservice(axis2方式)
2014-10-22 15:26
232 查看
前一段总结了一篇Java调用webservice的方式,当时因客户是局域网,所以只是在我们本地用.NET实现了一个webservice,然后进行测试,测试是通过的.但是在前一段去现场部署后,却一直的出异常,抛出的异常为null while involing ...找了很多原因都没有结果.后来百度了很多帖子发现一个比较全面的连接webservice的方法,貌似还区分连接.NET系统和其他系统.将信将疑就挑了一种实现方式.自己还搭建了一个Java实现的webservice做实验,发现原来的方法确实没有将值传到webservice上.最后部署到客户方发现真的成功了.故记录一下.
所需jar包http://download.csdn.net/detail/c5906343/8068967
EndpointReference endpointReference = new EndpointReference(url);//url为webservice路径,不带?wsdl // 创建一个OMFactory,下面的namespace、方法与参数均需由它创建 OMFactory factory = OMAbstractFactory.getOMFactory(); // 创建命名空间.<span style="font-family: Arial, Helvetica, sans-serif;">urn</span><span style="font-family: Arial, Helvetica, sans-serif;">不用变,</span><span style="font-family: Arial, Helvetica, sans-serif;">xmlns</span><span style="font-family: Arial, Helvetica, sans-serif;">对应xml文件中的</span><span style="font-family: Arial, Helvetica, sans-serif;">targetNamespace</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span>OMNamespace namespace = factory.createOMNamespace(xmlns, "urn");// // 参数对数 arg0 arg1 arg2 分别对应要调用的webservice所对应值的名称 OMElement nameElement = factory.createOMElement("arg0",null); nameElement.addChild(factory.createOMText(nameElement, "参数一")); OMElement nameElement1 = factory.createOMElement("arg1",null); nameElement1.addChild(factory.createOMText(nameElement1,"参数二")); OMElement nameElement2 = factory.createOMElement("arg2",null); nameElement2.addChild(factory.createOMText(nameElement2,"参数三")); // 创建一个method对象 OMElement method = factory.createOMElement("这里是要调用的方法名", namespace);
//将参数添加进去 method.addChild(nameElement); method.addChild(nameElement1); method.addChild(nameElement2); Options options = new Options(); options.setTo(endpointReference); options.setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI); ServiceClient sender = new ServiceClient(); sender.setOptions(options); // 请求并得到结果 OMElement element = sender.sendReceive(method);
//System.out.println(element);就可以打印出结果,但是结果是以xml格式显示的.可以通过迭代器遍历
<span style="font-family: Arial, Helvetica, sans-serif;"></span>Iterator iterator = element.getChildElements();返回迭代器进行遍历
while(iterator.hasNext()) { <span style="white-space:pre"> </span>String result = ((OMElement) iterator.next()).getText();//getText()可以返回标签中的值 <span style="white-space:pre"> </span>System.out.println(result); }
所需jar包http://download.csdn.net/detail/c5906343/8068967
相关文章推荐
- 纯java方式访问远程WebService接口返回的xml格式的数据保存在本地
- java开发webservice的几种方式[待总结:cxf、xfire、axis2]
- java RPC方式调用axis2 webservice
- java RPC方式调用axis2 webservice
- webservice之axis2客户端调用(maven方式创建java项目)
- axis2 以 RPC的方式访问webservice
- JQuery访问WebService(可访问Java[Xfire])
- 利用Axis2开发WebService(4)---用wsdl2java简化客户端的编写
- WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService
- WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService
- 高性能数据库的访问,java程序员心中永远的痛(JDBC访问数据库的4中方式及数据库连接池中间件的设计和实现)(1)
- 使用Axis2将Spring的装配JavaBean发布成WebService(转)
- 利用Axis2开发WebService(3)---用Java实现调用WebService的客户端程序
- 指定编码方式访问文件JAVA NET
- Java:WebService:XFire 与Axis2比较
- .NET 访问JAVA的WebService使用SOAP头
- 利用Axis2开发WebService(6)---axis2 传递对象数组,非stub方式
- java中数据库访问方式的不同处理数据总结:
- Webservice以HTTPS协议方式的访问部署
- WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService