java调用webservice接口几种方法

来源:设计经验分享网
添加时间:2024年02月
webservice的发布一般都是使用WSDL(webservicedescriptivelanguage)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。

下面我们来看Java如何通过WSDL文件来调用这些webservice:

注意,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法。

1,直接AXIS调用远程的webservice
我觉得这种方法比较适合那些高手,他们能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是专门搞这行的,即使一段时间看懂,后来也就忘记了。直接调用模式如下:

[java]viewplaincopy
importjava.util.Date;
importjava.text.DateFormat;
importorg.apache.axis.client.Call;
importorg.apache.axis.client.Service;
importjavax.xml.namespace.QName;
importjava.lang.Integer;
importjavax.xml.rpc.ParameterMode;

publicclasscaClient{
publicstaticvoidmain(String[]args){

try{
Stringendpoint="http://localhost:8080/ca3/services/caSynrochnized?wsdl";
//直接引用远程的wsdl文件
//以下都是套路
Serviceservice=newService();
Callcall=(Call)service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL里面描述的接口名称
call.addParameter("userName",
org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
Stringtemp="测试人员";
Stringresult=(String)call.invoke(newObject[]{temp});
//给方法传递参数,并且调用方法
System.out.println("resultis"+result);
}catch(Exceptione){
System.err.println(e.toString());
}
}
}

2,直接SOAP调用远程的webservice

[java]viewplaincopy
importorg.apache.soap.util.xml.*;
importorg.apache.soap.*;
importorg.apache.soap.rpc.*;

importjava.io.*;
importjava.net.*;
importjava.util.Vector;

publicclasscaService{
publicstaticStringgetService(Stringuser){
URLurl=null;
try{
url=newURL(
"http://192.168.0.100:8080/ca3/services/caSynrochnized");
}catch(MalformedURLExceptionmue){
returnmue.getMessage();
}
//ThisisthemainSOAPobject
CallsoapCall=newCall();
//UseSOAPencoding
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
//Thisistheremoteobjectwe''reaskingfortheprice
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
//Thisisthenameofthemethodontheaboveobject
soapCall.setMethodName("getUser");
//WeneedtosendtheISBNnumberasaninputparametertothemethod
VectorsoapParams=newVector();

//name,type,value,encodingstyle
ParameterisbnParam=newParameter("userName",String.class,user,
null);
soapParams.addElement(isbnParam);
soapCall.setParams(soapParams);
try{
//Invoketheremotemethodontheobject
ResponsesoapResponse=soapCall.invoke(url,"");
//Checktoseeifthereisanerror,return"N/A"
if(soapResponse.generatedFault()){
Faultfault=soapResponse.getFault();
Stringf=fault.getFaultString();
returnf;
}else{
//readresult
ParametersoapResult=soapResponse.getReturnValue();
//getastringfromtheresult
returnsoapResult.getValue().toString();
}
}catch(SOAPExceptionse){
returnse.getMessage();
}
}
}

3,使用wsdl2java把WSDL文件转成本地类,然后像本地类一样使用,即可。

这是像我这种懒人最喜欢的方式,仍然以前面的globalweatherreport为例。
首先javaorg.apache.axis.wsdl.WSDL2Javahttp://www.webservicex.net/globalweather.asmx.WSDL

原本的网址是http://www.webservicex.net/globalweather.asmx?WSDL,中间个各问号,但是Linux下面它不能解析,所以去掉问号,改为点号。


那么就会出现4个文件:

GlobalWeather.java

GlobalWeatherLocator.java

GlobalWeatherSoap.java

GlobalWeatherSoapStub.java


其中GlobalWeatherSoap.java是我们最为关心的接口文件,如果你对RMI等SOAP实现的具体细节不感兴趣,那么你只需要看接口文件即可,在使用的时候,引入这个接口即可,就好像使用本地类一样。

 

平面设计相关资讯推荐阅读:


怎样使网页运行更流畅出口外贸网页功效很大化的六大方法在深圳网页建设的价格差异大的原因!服务器被访问的速度由哪些因素决定专业网页制作前需做什么准备工作网页制作设计布局方法有哪些大型SEO网页定位和优化策略深度分析 企业互联网网络推广的小窍门 年终特典:网页制作设计趋势总结!深圳网页建设中如何提高用户的体验度高端网页建设报价怎么收费选择网页制作公司制作网页有什么优势相差五倍差价的网页设计差别在哪里浙江企业为什么要建设网页大型网页建设需要注意什么Drupal深圳网页开发服务网页开发如何让企业得到盈利易捷网络专注于营销型网页建设的公司深圳福田网页制作推广,SEO网页排名优化有哪些技巧奢侈品网页建设应该怎么做必须注意哪些问题如何破解社区O2O的死局网页链接购买一定要有质量而不是数量 企业网页设计哪家正规企业如何选择自己建网页必须做什么事儿盘点深圳企业创建网页两点必备技巧为什么要定制网页开发深圳网页设计要如何设计才能吸引用户非常感谢深圳凯雅照明有限公司对我司网页建设项目的支持 网页设计有哪三个定律以及启示画龙点睛教你改善界面交互式体验深圳网页建设的问题分享深圳网页设计|企业做定制型网页设计的原因是什么定制软件哪个好网页建设中前端设计包含哪些方面什么样的网页需要备案网页建设好不好,立马告诉你今后定制网页的发展趋势将如何变化网页设计中要注意哪些细节才能更吸引用户互联网+时代,企业建站应利用怎样的建站工具使用wordpress主题制作特色网页网页基本建设进行之后的图片怎样提升面对改革,选择深圳网页建设公司哪家好商城网页建设应该怎么做网页建设过程中的注意事项高品质移动网页的创建秘诀从海康威视董事被查来看选择一家正规靠谱的深圳广州网页制作开发公司重要性深圳网页建设小编教你怎么写软文深圳网页建设的费用受什么因素的影响网页建设中内容需要重视的五个方面网页设计制作布局对用户体验影响网页建设有哪些需要特别注意的事项用户体验相关职位有哪些RSSfeed如何读取初学者怎么样才能才可以创建一个网页有关深圳网页建设中使用的H5问题汇总么是关键词限制注册域名保留限制注册名单网页建设的作用有哪些物流企业为什么要做网页建设详谈营销型网页的建站关键怎么做网页开发才能有好的排名为什么我们不推荐模板建站
网站备案号:豫ICP备2024041165号