欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java調(diào)用webservice接口 幾種方法

2022-05-27    分類(lèi): 網(wǎng)站建設(shè)

webservice的 發(fā)布一般都是使用WSDL(web service descriptive language)文件的樣式來(lái)發(fā)布的,在WSDL文件里面,包含這個(gè)webservice暴露在外面可供使用的接口。

下面我們來(lái)看Java如何通過(guò)WSDL文件來(lái)調(diào)用這些web service:

注意,以下的代碼并沒(méi)有經(jīng)過(guò)真正的測(cè)試,只是說(shuō)明這些情況,不同版本的Axis相差很大,大家最好以apache網(wǎng)站上的例子為準(zhǔn),這里僅僅用于說(shuō)明其基本用法。

1,直接AXIS調(diào)用遠(yuǎn)程的web service
我覺(jué)得這種方法比較適合那些高手,他們能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是專(zhuān)門(mén)搞這行的,即使一段時(shí)間看懂,后來(lái)也就忘記了。直接調(diào)用模式如下:

[java] view plain copy
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;

public class caClient {
public static void main(String[] args) {

try {
String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
// 直接引用遠(yuǎn)程的wsdl文件
// 以下都是套路
Service service = new Service();
Call call = (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);// 接口的參數(shù)
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 設(shè)置返回類(lèi)型
String temp = "測(cè)試人員";
String result = (String) call.invoke(new Object[] { temp });
// 給方法傳遞參數(shù),并且調(diào)用方法
System.out.println("result is " + result);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}

2,直接SOAP調(diào)用遠(yuǎn)程的webservice

[java] view plain copy
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;

import java.io.*;
import java.net.*;
import java.util.Vector;

public class caService {
public static String getService(String user) {
URL url = null;
try {
url = new URL(
"http://192.168.0.100:8080/ca3/services/caSynrochnized");
} catch (MalformedURLException mue) {
return mue.getMessage();
}
// This is the main SOAP object
Call soapCall = new Call();
// Use SOAP encoding
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// This is the remote object we're asking for the price
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
// This is the name of the method on the above object
soapCall.setMethodName("getUser");
// We need to send the ISBN number as an input parameter to the method
Vector soapParams = new Vector();

// name, type, value, encoding style
Parameter isbnParam = new Parameter("userName", String.class, user,
null);
soapParams.addElement(isbnParam);
soapCall.setParams(soapParams);
try {
// Invoke the remote method on the object
Response soapResponse = soapCall.invoke(url, "");
// Check to see if there is an error, return "N/A"
if (soapResponse.generatedFault()) {
Fault fault = soapResponse.getFault();
String f = fault.getFaultString();
return f;
} else {
// read result
Parameter soapResult = soapResponse.getReturnValue();
// get a string from the result
return soapResult.getValue().toString();
}
} catch (SOAPException se) {
return se.getMessage();
}
}
}

3,使用wsdl2java把WSDL文件轉(zhuǎn)成本地類(lèi),然后像本地類(lèi)一樣使用,即可。

這是像我這種懶人最喜歡的方式,仍然以前面的global weather report為例。
首先 java org.apache.axis.wsdl.WSDL2Java http://www.webservicex.net/globalweather.asmx.WSDL

原本的網(wǎng)址是http://www.webservicex.net/globalweather.asmx?WSDL,中間個(gè)各問(wèn)號(hào),但是Linux下面它不能解析,所以去掉問(wèn)號(hào),改為點(diǎn)號(hào)。


那么就會(huì)出現(xiàn)4個(gè)文件:

GlobalWeather.java 

GlobalWeatherLocator.java

GlobalWeatherSoap.java

GlobalWeatherSoapStub.java


其中GlobalWeatherSoap.java是我們最為關(guān)心的接口文件,如果你對(duì)RMI等SOAP實(shí)現(xiàn)的具體細(xì)節(jié)不感興趣,那么你只需要看接口文件即可,在使用的時(shí)候,引入這個(gè)接口即可,就好像使用本地類(lèi)一樣。

當(dāng)前標(biāo)題:java調(diào)用webservice接口 幾種方法
本文路徑:http://chinadenli.net/news/159735.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、外貿(mào)建站、網(wǎng)站排名、軟件開(kāi)發(fā)、標(biāo)簽優(yōu)化、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
亚洲av秘片一区二区三区| 激情五月天免费在线观看| 成人精品视频在线观看不卡| 亚洲一区二区三区三州| 亚洲欧美日本国产不卡| 国产主播精品福利午夜二区| 亚洲熟妇熟女久久精品 | 国产老女人性生活视频| 欧美日韩乱一区二区三区| 亚洲日本中文字幕视频在线观看| 性欧美唯美尤物另类视频| 国产精品日韩欧美第一页| 中文字幕亚洲在线一区| 亚洲内射人妻一区二区| 亚洲欧美日本国产有色| 国产成人国产精品国产三级| 国产日韩久久精品一区| 欧美国产在线观看精品| 久久碰国产一区二区三区| 日韩av生活片一区二区三区| 国产成人精品国内自产拍| 国产农村妇女成人精品| 日韩精品一区二区不卡| 国产精品视频久久一区| 午夜精品久久久免费视频 | 伊人久久五月天综合网| 日韩精品在线观看完整版| 亚洲欧美视频欧美视频| 中文字幕熟女人妻视频| 国产精品亚洲二区三区| 欧美六区视频在线观看| 国产无摭挡又爽又色又刺激| 一个人的久久精彩视频| 欧美一区二区三区高潮菊竹| 欧美区一区二区在线观看| 久久综合九色综合欧美| 欧美午夜国产在线观看| 成人免费观看视频免费| 日本人妻的诱惑在线观看| 99国产精品国产精品九九| 99免费人成看国产片|