|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。1.利用HttpClient
用到的jar文件:commons-httpclient-3.1.jar
办法:
事后界说好Soap哀求数据,能够借助于XMLSpyProfessional软件来做这一步天生。
StringsoapRequestData="<?xmlversion="1.0"encoding="utf-8"?>"+
"<soap12:Envelopexmlns: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>"+
"<getCountryCityByIpxmlns="http://WebXml.com.cn/">"+
"<theIpAddress>219.137.167.157</theIpAddress>"+
"</getCountryCityByIp>"+
"</soap12:Body>"+
"</soap12:Envelope>";
然后界说一个PostMethod,这时候必要指定web服务的Url;
PostMethodpostMethod=newPostMethod(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”);
然后把Soap哀求数据增加到PostMethod中
byte[]b=soapRequestData.getBytes("utf-8");
InputStreamis=newByteArrayInputStream(b,0,b.length);
RequestEntityre=newInputStreamRequestEntity(is,b.length,"application/soap+xml;charset=utf-8");
postMethod.setRequestEntity(re);
最初天生一个HttpClient对象,并收回postMethod哀求
HttpClienthttpClient=newHttpClient();
statusCode=httpClient.executeMethod(postMethod);
StringsoapRequestData=postMethod.getResponseBodyAsString();
soapRequestData就是挪用web服务的Soap呼应数据,是xml格局的,能够经由过程剖析soapRequestData来取得挪用web服务的前往值。
2.利用Xfire
用到的jar文件xfire-all-1.2.4.jar,jdom-1.0.jar
办法:
界说一个Client对象,指定web服务的wsdl的地点
Clientc=newClient(newURL(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl”));
挪用Client对象的invoke办法,指定web服务的办法名,和参数,前往值是一个Object型的数组。
上面代码挪用getVersionTime办法,这个办法没有参数用以是后一个参数利用newObject[0]。
Object[]results=c.invoke(“getVersionTime”,newObject[0]);
3.利用axis2
下载axis2-1.4
办法:
翻开把持台,进进axis2-1.4/bin目次
wsdl2java.bat-urihttp://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl-pws.clinet.axis2
上述命令实行完后,会在以后目次下天生一个src目次,在srcwsclinetaxis2目次里天生XXXXCallbackHandler.java和XXXXStub.java两个文件。
wsdl2java会依据wsdl文件天生web服务的挪用接口,参数类,前往值的类。
在挪用webservice的时分间接实例化一个XXXXStub的对象,然后挪用web服务的办法就能够了。
4.总结
针对某种工具搭建的WebService服务大概有与其对应的更复杂的挪用办法,在这里没有做形貌,上述的挪用web服务的办法是通用的。
上述三种办法中利用httpclient应当是对照天真,可是开辟效力低,难度年夜,利用Xfire和axis2对照简单,开辟速率快,可是axis2通用性欠好,有的web服务用axis2欠好用。httpclient和Xfire通用性对照好,鉴于以上特性保举利用Xfire。
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。 |
|