易捷网络专注企业网站建设
11年企业网站建设经验、响应式网站建设,兼容PC、手机、平板全
终端,给你更佳的浏览体验...

java调用webservice接口几种方法

来源:网站建设行业资讯网
添加时间:2022-02-13
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实现的具体细节不感兴趣,那么你只需要看接口文件即可,在使用的时候,引入这个接口即可,就好像使用本地类一样。

网站建设计最新案例赏析:


东莞五源企业形象设计
深圳信雅文化传播
东莞吉川机械科技
山东博纳电气
深圳尚青文化创意
乐清乐鸟电气
山东刚泽金属制品
广东童年之家实业
湖南新展博会展服务
阳光雨露信息技术服务
 

网站建设行业资讯推荐阅读:


网站维护不可忽视的几个细节门户网站开发需要遵循的原则新开发一个网站需要多长时间关于网站建设如何进行优化掌握技巧,让企业网站建设更具特色优势手机网页设计必须留意什么难题建站:网页制作公司哪家强做搜索营销需要从细节方面去改进网站设计制作需要你我遵从的一些原则软件定制开发的成本高不高不知道的你就来了解了解!解析行业门户网站推广到底存在什么问题科技谈谈网站标题(Title)那些事百度今天正式开放https站点收录企业网站制作怎么才能吸引用户浏览深圳福田营销型网站建设,营销型网站建设要做好这几点深圳福田大型网站建设,网站建设应该具备哪些特征移动网站建设需要注意的地方网站设计的关键步骤是什么企业网站建设的好处深圳网站建设中外贸网站域名注册应该注意的事项深圳网站建设之网站设计公司内容要从本质起程做网站建设的步骤详细介绍!盘点深圳企业创建网站两点必备技巧如何高效输出移动网站产品原型详谈怎么判断网站建设的好坏企业如何选择自己建网站必须做什么事儿 好口碑的网站设计制作公司电话 网站设计中的邮箱有哪些注册设计要义分享网站的用户粘性要如何提升 什么是网站设计成功的禁忌为什么做了优化网站在搜索引擎的排名还是那么差呢商城网站必备的四大主要功能企业网站建设过程中关键因素哪些是比较重要的营销型网站制作中需要注意的三个重点网站的需求市场分析及定位响应式网站在网络运营的优势Web开发Facebook应用程序重新做网站怎么样保住排名营销网站建设需要注意哪些问题网站建设运营推广应该怎么做当前所有移动网站所面临的四大难题解析企业网站图片SEO优化市场和方法模板网站与定制网站区别如何做好网站内链的运用网站建设的几点好处计算机网页设计有哪些见解科技讲解文章标题是否有需要加后缀的必要性网络品牌的含义是什么-深圳网站设计分享网上商城的建设方案如何才能做好如何创建一个设计感强的网站定义span的最小高度没有效果的2种解决方法深圳手机网站建设需要多少钱网站建设网站首页设计的4个要求服务器被访问的速度由哪些因素决定静态页面的网站制作优势是什么网站建设如何才能抓住用户的心触点营销在深圳网站建设中扮演什么样的角色企业软件定制开发有哪些优势做软件定制开发有哪些地方必须注意网站建设中不利于优化的错误之处
企业网站建设行业信息服务发布平台!
(www.fantodo.com)版权所有