国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - WebService教程詳解(二)

WebService教程詳解(二)

2020-04-10 15:22學習之路 JAVA教程

這篇文章主要介紹了WebService教程詳解(二) 的相關資料,需要的朋友可以參考下

在上篇文章給大家介紹了WebService教程詳解(一)

使用工具的原因:

1、 使用工具可以更好的了解WebService請求的過程

2、 使用工具WsExplore可以獲取SOAP數據發送和接收的格式

3、 使用工具Tcp/Ip Monitor可以監控攔截器請求頭和響應頭的具體數據

什么是SOAP?

SOAP是一種基于XML編碼規范的文本協議,簡單的說SOAP就是在HTTP的基礎上傳輸XML數據,以實現遠程調用【無論你的服務端是什么語言書寫的,只要接收SOAP協議的XML數據,并返回SOAP協議的XML數據,就可以被任何語言調用】

使用WsExplorer實例:驗證qq是否在線

采用qqOnlineWebServiceSoap中的qqCheckOnLine驗證時,返回的是

qqCheckOnlineResponse
qqCheckOnlineResult (string): N

點擊source可以看到詳細信息,信息如下:

1:這是發出的消息格式:

 

復制代碼 代碼如下:

http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://WebXml.com.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-
870931520

 

2:以下是接收到的XML格式

 

復制代碼 代碼如下:

http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- http://WebXml.com.cn/">
N

 

采用qqOnlineWebServiceHttpGet或qqOnlineWebServiceHttpPost中的qqCheckOnline驗證時,返回的都是

Nhttp://WebXml.com.cn/">N>

使用Tcp/Ip Monitor

TCP/IP Monitor不僅可以看到SOAP數據,還可以獲取HTTP請求和接收的頭信息。

1、位置:此工具位于:window>show view>other>MyEclipse Common(常用工具)>TCP/IP Monitor

2、此工具,相當于一個代理商,啟動后它將監聽本地的某個端口,然后再將請求轉發給指定的目標IP和端口。
獲取到數據后,再將數據原封不動的返回給客戶。在客戶看來,永遠首先訪問的都應該是這個代理,否則我們將看不到數據傳輸的過程。

3、 配置選項:

在打開的TCP/IP Monitor界面上:view Menu(右上方向下的小箭頭)>Properties>Add(右側添加)

設置成以下屬性:

第一步:

1)local monitoring port(監聽本地的端口號):9876,隨意設置一個4位的端口號,一會將通過http://127.0.0.1:9876的形式訪問

2)host name(要監聽的服務器,如www.jfrwli.cn):127.0.0.1 –因為本機發布了一個WebService所以監聽本機IP.也可以是任意的主機。

3)Port(要監聽的目標服務器的端口):6666 - 因為我們發布的WebService為http://127.0.0.1:6666/helloworld所以,6666是需要監聽的端口號。

4)Type(監聽的類型):
-- TCP/IP : 將使用原始地址繼續訪問下一個請求,如用戶輸入:http://127.0.0.1:9876/helloworld?wsdl此時將返回wsdl服務訪問地址同前。

-- HTTP :將使用目標地址繼續訪問下一個請求。如用戶輸入: http://127.0.0.1:9876/helloworld?wsdl在請求方法時將使用http://127.0.0.1:6666/helloworld來訪問sayHi方法。此種方式將不再會被代理。因為已經不是正在監聽的端口號了。

在監聽類型處,我選擇了TCP/IP,然后通過在地址欄輸入:http://127.0.0.1:9876/helloworld?wsdl,在返回的wsdl文件中查看:處地址的變化情況。

time out:設置訪問不成功的連接時間,保持為0,即不設置。

在設置好后,點OK按扭,然后再點右方的Start按扭,監聽便已經啟動。

第二步:

在MyEclipse的WebService上配置WSDL URL為:http://127.0.0.1:9876/helloworld?wsdl,注意使用的是MyEclipse TCP/IP Monitor的端口。而不是直接去訪問我們發布的http://127.0.0.1:6666/helloworld?wsdl

如何修改wsdl文件的內容?

使用WebService的注解。

1、 @WebService-定義服務

2、 @WebMethod-定義方法

3、 @WebResult-定義返回值

4、@WebParam-定義參數

注意:對于注解,不同的版本支持程度不相同:

1、1.5不支持.

2、1.6.0_20前版本必須使用完整注解.

3、1.6.0_21以后可以只使用@WebService對類進行注解.

注釋的作用:

通過WebService的注解,可以更加形像的描述Web服務。從而生成WSDL文檔。

當修改了WebService注解之后,同時會影響客戶端生成的代碼。

調用的方法名和參數名也發生了變化。

示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@WebService(name="myName",//對應portType name="myName"
portName="myPort", //對應服務中的port name="myPort"
serviceName="myService",//對應service name="myService"
targetNamespace="http://leaf.com/mynamespace")//可以隨意書寫類似于java中的package
public class HelloWorld{
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@WebMethod(action="myAction",//定義一個soapAction="myAction"用于找到這個方法以執行
operationName="myOperationName")//定義可以調用的方法,會生成相應類的具體方法,operation name=".."
public @WebResult(name="mySayHelloResult")String//定義返回值的名稱
sayHello(){
return "HelloWorld";
}
@WebMethod(action="mySayHiAction",operationName="mySayHiOperationName")
public @WebResult(name="mySayHiResult")String sayHi(@WebParam(name="myParaName",
//將參數放到頭信息中,用于保護參數,默認在body中
header=true,
mode=Mode.IN)
String name){
String str = "你好:"+name+",當前時間是:"+sdf.format(new Date());
return str;
}
public static void main(String[] args) {
Endpoint.publish("http://127.0.0.1:6666/helloworld",new HelloWorld());
}
}

3:將上面的程序對外發布以后,我們通過MyEclipse的WebService Explorer來訪問

你會發現和以前不一樣的提示信息,但其實,仍然還是調用的那同一個方法。

4:再次使用wsimport –s . http://127.0.0.1:6666/helloworld?wsdl生成java代碼然后調用
以下是調用代碼(可以用面目全非來形容,但完成的還是同樣的工作。)

?
1
2
3
4
5
6
7
8
9
10
package com.leaf.mynamespace;
public class Main {
public static void main(String[] args) {
//通過分析wsdl可知從myService中調用getMyPort返回myName
MyName myName = new MyService().getMyPort();
//通過myName的mySayHiOperationName來調用sayHi方法
String str = myName.mySayHiOperationName("王健");
System.err.println(str);
}
}

關于WebService教程詳解(二) 就先給大家介紹到這里,希望對大家有所幫助!

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 黄色成人在线 | 在线成人av | 婷婷国产在线观看 | 免费观看av网站 | 亚洲国产高清在线 | 91精品久久久久久久91蜜桃 | 国产大片一区 | 久久99精品国产.久久久久 | 黄色毛片看看 | 国产精品二区三区 | 最新高清无码专区 | www.日韩| 久久久久久网站 | 国产在线一区二区 | av免费黄色| 国产97人人超碰caoprom | 日韩高清在线一区二区三区 | 日韩精品在线播放 | 成人在线观看av | 国产精品初高中精品久久 | 免费成人在线视频网站 | 日韩欧美一二三 | 亚洲一区二区三区四区的 | 久久久网页 | 婷婷国产精品 | 久久久久亚洲精品 | 欧美99热 | 国产精品成人国产乱一区 | 久久国产精品99久久久久久老狼 | 国产在线一区二区 | 色视在线 | 久草 在线 | 99国产精品久久久久久久久久 | 亚洲欧美在线观看 | 日日操夜夜操天天操 | 97久久精品人人做人人爽50路 | 在线手机电影 | 久久性| 一级大片免费观看 | 成人在线天堂 | 黄片毛片一级 |