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实现的具体细节不感兴趣,那么你只需要看接口文件即可,在使用的时候,引入这个接口即可,就好像使用本地类一样。

 

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


企业网页如何体现自己企业的竞争力网页建设安全性是非常关键的如何解决传统网页建设的缺陷问题网页优化中被百度降权排除方式2018年企业品牌展示会以微网页为主在中小企业自助建站的同时需要注意的几个事项哪种网页被认为是好的设计网页建设排名深圳网页建设公司,企业建立自己的网页有哪些好处百度推广中关键词的选择是重流量还是重质量深圳营销型网页建设,营销型网页到底该如何做网页建设推广时哪些问题更重要适用于所有网页的结构优化秘诀网页制作企业给你说一下网络营销和推广的区别是什么深圳网页设计需要注意的细节广州网页建设公司揭秘网页地图的六大优点怎样在网上寻找优秀网页设计网页网页竞价排名与搜索引擎优化的区别如何识别和选择靠谱的深圳网页建设公司网页数据分析三段论如何做好数据分析企业网页建设做好用户体验的建议企业网页建设有哪些是关键点企业建站有哪些要素最新域名注册规则—网页建设公司易捷网络提醒您域名注册需要注意什么面对不同搜索引擎的优化策略是不一样的网页设计中的迭代设计是怎样的呢关于网页建设的可访问性(一)京东产品运营手记|初级运营如何避坑网页建设中怎么才能提升网页效果企业网页建设中框架功能如何布局为什么推荐做定制型网页制作呢网页页面应该如何设计为什么Line红遍亚洲,微信却在非洲坠落外贸网页开发需要注意哪些问题深圳网页制作如何做好网页建设内容软件定制开发是优点科技-公司网页建设周期需要多久哪些问题会影响网页建设速度网页设计的相关趋势在哪建立网页需要遵循某些原则2021年哪家网页制作公司好深圳企业网页建设站长需要了解哪些建站知识企业该不该建设网页分析新手必须经历的网页优化过程中的三个过程外贸网页基本建设怎样做才可以产生使用价值对自己的网页进行站内站外分析 品牌网页设计定做要怎么建设设计酒店网页响应式网页建设如何做好色彩搭配网页建设后期跟进重点网页建设之前的网页价值分析网页建设这4点要注意了深圳网页建设网页优化有哪些内容关于网页是否要静态化HTML的问题网页内链的5个小窍门排名快速提高总结实战企业网页SEO优化技巧如何查看网页域名解析是否成功出口外贸网页基本建设怎样才可以考虑客户需求网页建设为传统企业带来的价值网页优化过程中快照不更新的解决方法便宜的网页建设十大缺点如何提高企业网页建设质量
网站备案号:豫ICP备2024041165号