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

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


陕西松峰实验设备
深圳朝华车身广告
欧马腾会展科技
东莞索诚电子
华星(深圳)新材料
广州黑蜂科技有限公司
深圳四强科技
佛山市共宏纺织机械
山东刚泽金属制品
深圳趣团建文化传播
 

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


专业的企业网页设计定做如何基本建设自身网站的主页网站建设前企业需要写策划方案的吗提高网站的品牌形象有什么好处网站建设好处,网站优化降权原因有哪些网站建设的目的是什么新浪微博开启商业化,草根媒体人该怎么办提升网站营销效果的七个运营策略躲开了吗网站建设过程中的大坑!如何丰富网站的内容深圳网站建设中的色彩搭配与网页设计技巧深圳卓越迈创做的定制网站建设有什么与众不同呢建站:从零开始怎么制作公司网站 中小企业网站的SEO优化思路Android程序开发:Eclipse编程代码提示设置成功的网站建设需要注意哪些因素关于提高转化率的9个建议 “用户至上”的网站设计模式该怎么去实现谈谈新手站长做网站容易犯的一些通病网站建成后能够从哪一方面优化深圳网站建设中美观的网站需要满足几个要求如何利用色彩对比增加网站的视觉交互网页设计有哪些方法,如何设计网站建设如何才能符易捷化趋势原创类文章对深圳网站建设优化的影响网站跳出率高一定是坏事吗教你正确判断与优化网站百度首页不更新的几个问题深圳网站建设公司教你如何建设外链,get起来~分享自媒体运营的误区有哪些B2C生鲜同城配送平台,“最后一公里”配送各出新招企业网站建设如何吸引更多用户网站得到免费链接的3个方法电商网站建设这种难题要了解深圳网站建设告诉你如何提高你的网站的打开速度深圳科技提高专业高端网站建设定制服务域名让你不容小觑网站建设的设计趋势外贸网站建设如何设计才吸引人“大”网站的内容进化:价值内容如何展现网站制作公司运用了技术设计成功的手机网站设计良好的用户体验营销型网站建设如何运营设计稿响应式工作原理是怎样的呢企业官网的移动端网站该如何做好搜索引擎优化百度度娘大更新,企业网站将如何面对网页和网站之间的区别如何制作增加信任度的注册页面网站建设存在的弊端,我们应该如何避免易捷网络:微信和网站建设APP开发一体化 品牌网站设计模板制作哪个品牌好 定制网站具备哪些特性有什么优点邮箱中收到的垃圾邮件太多,怎么办微信营销常用的4种方式有哪些网站优化与推广的技巧有哪些新闻媒体报道:再攻O2O:支付宝推“未来生活广场”厉害了,网站定制的优势原来这么多!龙岗网站建设中应该避开哪些错误触点营销在深圳网站建设中扮演什么样的角色深圳网站建设中如何提高网站信誉度网站建设管理工作首期培训班在京举办
企业网站建设行业信息服务发布平台!
(www.fantodo.com)版权所有