亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java編程Webservice指定超時時間代碼詳解

2024-07-13 10:13:34
字體:
來源:轉載
供稿:網友

WebService是一種跨編程語言和跨操作系統平臺的遠程調用技術

所謂遠程調用,就是一臺計算機a上的一個程序可以調用到另外一臺計算機b上的一個對象的方法,譬如,銀聯提供給商場的pos刷卡系統(采用交互提問的方式來加深大家對此技術的理解)。

遠程調用技術有什么用呢?商場的POS機轉賬調用的轉賬方法的代碼是在銀行服務器上,還是在商場的pos機上呢?什么情況下可能用到遠程調用技術呢?例如,amazon,天氣預報系統,淘寶網,校內網,百度等把自己的系統服務以webservice服務的形式暴露出來,讓第三方網站和程序可以調用這些服務功能,這樣擴展了自己系統的市場占有率,往大的概念上吹,就是所謂的SOA應用。

所謂跨編程語言和跨操作平臺,就是說服務端程序采用java/245873.html">javascript/131624.html">java編寫,客戶端程序則可以采用其他編程語言編寫,反之亦然!跨操作系統平臺則是指服務端程序和客戶端程序可以在不同的操作系統上運行。

除了WebService外,常見的遠程調用技術還有RMI(Remotemethodinvoke)和CORBA,由于WebService的跨平臺和跨編程語言特點,因此比其他兩種技術應用更為廣泛,但性能略低。

使用JDK對Webservice的支持進行Webservice調用時通常的操作步驟如下:

//1、創建一個javax.xml.ws.Service實例javax.xml.ws.Service service = javax.xml.ws.Service.create(wsdl, serviceName);//2、通過Service實例獲取對應的服務接口的代理HelloService helloService = service.getPort(portName, HelloService.class);//3、通過獲取到的Webservice服務接口的代理調用對應的服務方法helloService.sayHello("Elim")

在上述的步驟一在構建Service實例的同時,在Service內部會構建一個ServiceDelegate類型的對象賦給屬性delegate,內部持有。然后在第二步會利用delegate創建一個服務接口的代理對象,同時還會代理BindingProvider和Closeable接口。然后在第三步真正發起接口請求時,內部會發起一個HTTP請求,發起HTTP請求時會從BindingProvider的getRequestContext()返回結果中獲取超時參數,分別對應com.sun.xml.internal.ws.connection.timeout和com.sun.xml.internal.ws.request.timeout參數,前者是建立連接的超時時間,后者是獲取請求響應的超時時間,單位是毫秒。如果沒有指定對應的超時時間或者指定的超時時間為0都表示永不超時。所以為了指定超時時間我們可以從BindingProvider下手。比如:

public class Client {	public static void main(String[] args) throws Exception {		String targetNamespace = "http://test.elim.com/ws";		QName serviceName = new QName(targetNamespace, "helloService");		QName portName = new QName(targetNamespace, "helloService");		URL wsdl = new URL("http://localhost:8888/hello");		//內部會創建一個ServiceDelegate類型的對象賦給屬性delegate		Service service = Service.create(wsdl, serviceName);		//會利用delegate創建一個服務接口的代理對象,同時還會代理BindingProvider和Closeable接口。		HelloService helloService = service.getPort(portName, HelloService.class);						BindingProvider bindingProvider = (BindingProvider) helloService;		Map<String, Object> requestContext = bindingProvider.getRequestContext();		requestContext.put("com.sun.xml.internal.ws.connection.timeout", 10 * 1000);//建立連接的超時時間為10秒		requestContext.put("com.sun.xml.internal.ws.request.timeout", 15 * 1000);//指定請求的響應超時時間為15秒				//在調用接口方法時,內部會發起一個HTTP請求,發起HTTP請求時會從BindingProvider的getRequestContext()返回結果中獲取超時參數,		//分別對應com.sun.xml.internal.ws.connection.timeout和com.sun.xml.internal.ws.request.timeout參數,		//前者是建立連接的超時時間,后者是獲取請求響應的超時時間,單位是毫秒。如果沒有指定對應的超時時間或者指定的超時時間為0都表示永不超時。				System.out.println(helloService.sayHello("Elim"));	}	}

完整示例如下:

服務接口:

@WebService(portName="helloService", serviceName="helloService", targetNamespace="http://test.elim.com/ws")public interface HelloService {	String sayHello(String name);	}

服務接口實現:

@WebService(portName="helloService", serviceName="helloService", targetNamespace="http://test.elim.com/ws")public class HelloServiceImpl implements HelloService {	private Random random = new Random();	@Override		public String sayHello(String name) {		try {			TimeUnit.SECONDS.sleep(5 + random.nextint(21));			//隨機睡眠5-25秒		}		catch (InterruptedException e) {			e.printStackTrace();		}		return "Hello " + name;	}}

服務端代碼:

public class Server {	public static void main(String[] args) {		Endpoint.publish("http://localhost:8888/hello", new HelloServiceImpl());	}}

在上述的服務端代碼中隨機睡眠了5-25秒,而客戶端指定的超時時間是15秒,所以在測試的時候你會看到有時候服務調用會超時,有時會正常響應。

總結

以上就是本文關于Java編程Webservice指定超時時間代碼詳解的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品中文| 精品露脸国产偷人在视频| 国产精品成人久久久久| 欧美成人剧情片在线观看| 国产精品黄色影片导航在线观看| 国产盗摄xxxx视频xxx69| 久久伊人精品一区二区三区| 亚洲成人网在线| 大胆欧美人体视频| 久久久久久有精品国产| 欧美在线影院在线视频| 久久99热精品| 另类色图亚洲色图| 精品国产91久久久久久| 欧美xxxx14xxxxx性爽| 成人国内精品久久久久一区| 在线电影中文日韩| 精品国产老师黑色丝袜高跟鞋| 欧美日韩国产中文字幕| 久久夜精品va视频免费观看| 成人精品一区二区三区电影黑人| 久久精品视频中文字幕| 亚洲一区av在线播放| 亚洲国产精品久久久久秋霞蜜臀| 美女黄色丝袜一区| 成人天堂噜噜噜| 亚洲国产精品成人va在线观看| 欧美激情综合色| 色婷婷av一区二区三区久久| 尤物九九久久国产精品的分类| 2019中文字幕在线观看| 欧美裸体视频网站| 精品视频在线导航| 久久久精品一区二区| 狠狠色狠狠色综合日日小说| 欧美亚州一区二区三区| 久热在线中文字幕色999舞| 中文字幕国产精品| 2018国产精品视频| 91国产精品视频在线| 中文字幕久久久av一区| 亚洲综合一区二区不卡| 亚洲综合在线做性| 精品国产欧美成人夜夜嗨| 精品国产一区二区三区久久久| 久久久免费高清电视剧观看| 伊人久久男人天堂| 日本精品久久电影| 日韩性生活视频| 欧美精品免费在线| 精品国产91乱高清在线观看| 国产日韩精品视频| 日韩av在线资源| 国产视频精品久久久| zzjj国产精品一区二区| 亚洲欧洲视频在线| 亚洲www视频| 亚洲免费一级电影| 黄色精品一区二区| 久久久国产影院| 伊人激情综合网| 中文字幕日韩视频| 久久视频中文字幕| 日韩一区二区欧美| 在线播放日韩av| 成人激情在线观看| 亚洲女人被黑人巨大进入al| 欧美精品18videosex性欧美| 欧美中文在线观看| 成人两性免费视频| 91久久精品美女| 亚洲综合成人婷婷小说| 成人精品久久一区二区三区| 亚洲色图在线观看| 国产日韩精品入口| 97人洗澡人人免费公开视频碰碰碰| 狠狠操狠狠色综合网| 国产日本欧美在线观看| 亚洲图片在区色| 亚洲国产精品久久| 久久久国产精彩视频美女艺术照福利| 亚洲国产精品久久久久| 亚洲女在线观看| 国产999在线观看| 久久久久久久999| 亚洲一区亚洲二区亚洲三区| www.日本久久久久com.| 日韩激情片免费| 日韩欧美亚洲范冰冰与中字| 亚洲视频在线播放| 国产小视频国产精品| 日韩小视频在线| 国产精品视频午夜| 日韩av综合网站| 日韩美女在线观看| 69av视频在线播放| 91sao在线观看国产| 精品久久久久久久久久久久久久| 欧美精品18videos性欧美| 日韩风俗一区 二区| 黑人极品videos精品欧美裸| 亚洲天堂av在线免费| 在线观看日韩av| 欧美第一页在线| 国产精品美乳一区二区免费| 久久久久国产精品一区| 按摩亚洲人久久| 久久久这里只有精品视频| 欧美日韩999| 欧美激情精品久久久久久变态| 日韩性xxxx爱| 上原亚衣av一区二区三区| 国内精品小视频在线观看| 亚洲免费高清视频| 国产精品美女免费视频| 91成品人片a无限观看| 国产伦精品免费视频| 亚洲偷熟乱区亚洲香蕉av| 亚洲欧美日韩国产中文专区| 国产91免费看片| 色爱av美腿丝袜综合粉嫩av| 久久久av网站| 亚洲欧洲日产国产网站| 日韩欧美在线视频观看| 欧美极品少妇与黑人| 久久理论片午夜琪琪电影网| 宅男66日本亚洲欧美视频| 国产98色在线| 久久精品视频亚洲| 色999日韩欧美国产| 色婷婷综合成人av| 中文字幕日韩视频| 欧美风情在线观看| 久久久久亚洲精品国产| 亚洲欧洲偷拍精品| 国产精品999| 91po在线观看91精品国产性色| 成人有码视频在线播放| 亚洲成年人在线| 九九久久精品一区| 欧美一级高清免费播放| 欧美巨猛xxxx猛交黑人97人| 粗暴蹂躏中文一区二区三区| 亚洲美女视频网| 91av在线视频观看| 亚洲视频国产视频| 在线午夜精品自拍| 欧美日韩xxx| 日韩最新在线视频| 亚洲国产精品悠悠久久琪琪| 国产精品中文字幕在线观看| 国产精品高潮呻吟久久av无限| 久久精品免费电影| 欧洲美女7788成人免费视频| 久久久久久久久久久网站| 欧美三级欧美成人高清www| 精品无人国产偷自产在线| 91wwwcom在线观看| 黑丝美女久久久| 亚洲精品自在久久| 日韩欧美在线视频日韩欧美在线视频| 亚洲老板91色精品久久| 日韩av片电影专区| 美乳少妇欧美精品|