问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java怎么调用webservice

发布网友 发布时间:2022-04-29 04:39

我来回答

2个回答

热心网友 时间:2022-04-24 05:51

1.使用HttpClient
用到的jar文件:commons-httpclient-3.1.jar
方法:
预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成。

String soapRequestData = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">" +
"<soap12:Body>" +
" <getCountryCityByIp xmlns=\"http://WebXml.com.cn/\">" +
" <theIpAddress>219.137.167.157</theIpAddress>" +
" </getCountryCityByIp>" +
" </soap12:Body>" +
"</soap12:Envelope>";

然后定义一个PostMethod,这时需要指定web服务的Url;

PostMethod postMethod = new PostMethod(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”);

然后把Soap请求数据添加到PostMethod中

byte[] b = soapRequestData.getBytes("utf-8");
InputStream is = new ByteArrayInputStream(b,0,b.length);
RequestEntity re = new InputStreamRequestEntity(is,b.length,"application/soap+xml; charset=utf-8");
postMethod.setRequestEntity(re);

最后生成一个HttpClient对象,并发出postMethod请求

HttpClient httpClient = new HttpClient();
statusCode = httpClient.executeMethod(postMethod);
String soapRequestData = postMethod.getResponseBodyAsString();

soapRequestData就是调用web服务的Soap响应数据,是xml格式的,可以通过解析soapRequestData来获得调用web服务的返回值。
2.使用Xfire
用到的jar文件xfire-all-1.2.4.jar, jdom-1.0.jar
方法:
定义一个Client对象,指定web服务的wsdl的地址

Client c = new Client(new URL(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl”));

调用Client对象的invoke方法,指定web服务的方法名,和参数,返回值是一个Object型的数组。
下面代码调用getVersionTime方法,这个方法没有参数用所以后一个参数使用new Object[0]。

Object[] results = c.invoke(“getVersionTime”, new Object[0]);

3.使用axis2
下载axis2-1.4
方法:
打开控制台,进入axis2-1.4/bin目录

wsdl2java.bat -uri http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl -p ws.clinet.axis2

上述命令执行完后,会在当前目录下生成一个src目录,在src\ ws\ clinet\ axis2目录里生成XXXXCallbackHandler.java和XXXXStub.java两个文件。
wsdl2java 会根据wsdl文件生成web服务的调用接口,参数类,返回值的类。
在调用webservice的时候直接实例化一个XXXXStub的对象,然后调用web服务的方法就可以了。
4. 总结
针对某种工具搭建的Web Service服务可能有与其对应的更简单的调用方法,在这里没有做描述,上述的调用web服务的方法是通用的。
上述三种方法中使用httpclient应该是比较灵活,但是开发效率低,难度大,使用Xfire和axis2比较容易,开发速度快,但是axis2通用性不好,有的web服务用axis2不好用。httpclient和Xfire通用性比较好,鉴于以上特点推荐使用Xfire。

热心网友 时间:2022-04-24 07:09

要看怎样的WEBSERVICE。。。。。。。。。。。。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 如何使用java做webservice java 如何实现webservice 怎么调用接口 面试题java实现webservice如何实现 你好,我想问有钱花贷款两万一天利息多少钱 尊享贷利率是多少? 有钱花尊享贷利息 秋海棠用什么来繁殖? 四季海棠有哪些繁殖方法? 四季海棠繁殖方法是什么? 秋海棠的繁殖方式是怎样的? 海棠花如何播种繁殖? 秋海棠有哪些繁殖方法? 2010年中考语文怎样才能拿高分?有什么答题技巧 适合中学生的经典名家散文 周国平的经典散文 微信上从收藏里删除的视频怎么恢复? 可爱淘的经典语录 做会计要不要懂得WORD,EXCEL这些操作 周国平经典作品有哪些? word,excel,ppt在会计专业中起到什么作用。你会在什么时候用到它们,你认为它们可以帮你解决哪些会计问题。 java 怎样调用本地webservice 如何在java web 里面使用webservice技术 java调用webservice接口具体怎么调用 java开发webservice接口有几种方式 java调用webservice错误:Could not send Message 现在java调用webservice是用什么技术? java调用WebService接口为什么这么慢 java程序如何调用webservice接口,实现发送短信功能 java调用 webservice 接口怎么调用 怎么将支付宝盒上的绑定码被朋友绑定了绑定账户解除? 紫菜包饭,紫菜包饭的做法,紫菜包饭怎么做 淘宝店开今日头条需要什么资质 桂花怎样晾晒 如何晒出色泽金黄的桂花干? 又小又弯曲的铁棍山药好不好 为什么商家不能进驻淘宝头条注册头条号 金丝山药和铁棍山药哪个好 烘桂花时,桂花会不会变色?谁来告诉我?怎么样才会不变色 如何选购好的铁棍山药?请说出好的铁棍山药的辨别方法。谢谢啦。_百度知... 魅族手机可以一键换机吗?