最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WebService教程詳解(二)

 更新時間:2016年03月15日 10:57:34   作者:學習之路  
這篇文章主要介紹了WebService教程詳解(二) 的相關資料,需要的朋友可以參考下

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

使用工具的原因:

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

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

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

什么是SOAP?

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

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

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

qqCheckOnlineResponse
qqCheckOnlineResult (string): N

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

1:這是發(fā)出的消息格式:

復制代碼 代碼如下:

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

3、 配置選項:

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

設置成以下屬性:

第一步:

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

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

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

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

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

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

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

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

第二步:

在MyEclipse的WebService上配置WSDL URL為:http://127.0.0.1:9876/helloworld?wsdl,注意使用的是MyEclipse TCP/IP Monitor的端口。而不是直接去訪問我們發(fā)布的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注解之后,同時會影響客戶端生成的代碼。

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

示例:

@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"用于找到這個方法以執(zhí)行 
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:將上面的程序對外發(fā)布以后,我們通過MyEclipse的WebService Explorer來訪問

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

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

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教程詳解(二) 就先給大家介紹到這里,希望對大家有所幫助!

相關文章

  • idea手動刷新git分支的詳細教程

    idea手動刷新git分支的詳細教程

    這篇文章主要介紹了idea手動刷新git分支,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • spring-shiro權限控制realm實戰(zhàn)教程

    spring-shiro權限控制realm實戰(zhàn)教程

    這篇文章主要介紹了spring-shiro權限控制realm實戰(zhàn)教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java AOP動態(tài)代理詳細介紹

    Java AOP動態(tài)代理詳細介紹

    AOP是一種設計思想,是軟件設計領域中的面向切面編程,它是面向對象編程的一種補充和完善。本文將用Java實現AOP代理的三種方式,需要的可以參考一下
    2022-08-08
  • SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化

    SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerM

    這篇文章主要介紹了SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化的相關資料,需要的朋友可以參考下
    2016-02-02
  • packages思維及使用Java添加Android平臺特定實現

    packages思維及使用Java添加Android平臺特定實現

    這篇文章主要為大家介紹了packages思維及使用Java添加Android平臺特定實現在Flutter框架里的體現和運用詳解,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 使用阿里云OSS的服務端簽名后直傳功能的流程分析

    使用阿里云OSS的服務端簽名后直傳功能的流程分析

    這篇文章主要介紹了使用阿里云OSS的服務端簽名后直傳功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot使用@ControllerAdvice全局異常處理

    SpringBoot使用@ControllerAdvice全局異常處理

    這篇文章主要介紹了SpringBoot使用@ControllerAdvice全局異常處理,異常處理是非常重要的一部分,它可以幫助我們捕獲并處理應用程序中出現的異常情況,提高應用程序的健壯性和可靠性,需要的朋友可以參考下
    2023-07-07
  • 在 Spring Boot 中使用 @Autowired和 @Bean注解的示例詳解

    在 Spring Boot 中使用 @Autowired和 @Bean

    本文通過一個示例演示了如何在SpringBoot中使用@Autowired和@Bean注解進行依賴注入和Bean管理,示例中定義了一個Student類,并通過配置類TestConfig初始化Student對象,在測試類中,通過@Autowired注解自動注入Student對象并輸出其屬性值,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • 布隆過濾器詳解以及其在Java中的實際應用

    布隆過濾器詳解以及其在Java中的實際應用

    布隆過濾器是一種數據結構,比較巧妙的概率型數據結構(probabilistic data structure),特點是高效地插入和查詢,這篇文章主要給大家介紹了關于布隆過濾器詳解以及其在Java中的實際應用,需要的朋友可以參考下
    2023-12-12
  • SpringBoot中熱部署配置深入講解原理

    SpringBoot中熱部署配置深入講解原理

    在實際開發(fā)中,每次修改代碼就需要重啟項目,重新部署,對于一個后端開發(fā)者來說,重啟確實很難受。在java開發(fā)領域,熱部署一直是一個難以解決的問題,目前java虛擬機只能實現方法體的熱部署,對于整個類的結構修改,仍然需要重啟項目
    2023-01-01

最新評論

冀州市| 万宁市| 哈尔滨市| 富裕县| 沙雅县| 贵港市| 上思县| 阳信县| 砚山县| 旌德县| 延吉市| 陵川县| 营山县| 河间市| 安庆市| 武威市| 鹤山市| 江陵县| 武清区| 翁源县| 海宁市| 孝感市| 翼城县| 抚松县| 邹城市| 镇安县| 琼海市| 梁河县| 漯河市| 林口县| 佛坪县| 阿坝县| 西乌珠穆沁旗| 滨海县| 上犹县| 宜丰县| 云林县| 安达市| 炉霍县| 陆丰市| 通榆县|