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

WebService教程詳解(二)

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

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

使用工具的原因:

1、 使用工具可以更好的了解WebService請(qǐng)求的過(guò)程

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

3、 使用工具Tcp/Ip Monitor可以監(jiān)控?cái)r截器請(qǐng)求頭和響應(yīng)頭的具體數(shù)據(jù)

什么是SOAP?

SOAP是一種基于XML編碼規(guī)范的文本協(xié)議,簡(jiǎn)單的說(shuō)SOAP就是在HTTP的基礎(chǔ)上傳輸XML數(shù)據(jù),以實(shí)現(xiàn)遠(yuǎn)程調(diào)用【無(wú)論你的服務(wù)端是什么語(yǔ)言書(shū)寫(xiě)的,只要接收SOAP協(xié)議的XML數(shù)據(jù),并返回SOAP協(xié)議的XML數(shù)據(jù),就可以被任何語(yǔ)言調(diào)用】

使用WsExplorer實(shí)例:驗(yàn)證qq是否在線(xiàn)

采用qqOnlineWebServiceSoap中的qqCheckOnLine驗(yàn)證時(shí),返回的是

qqCheckOnlineResponse
qqCheckOnlineResult (string): N

點(diǎn)擊source可以看到詳細(xì)信息,信息如下:

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

復(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格式

復(fù)制代碼 代碼如下:

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驗(yàn)證時(shí),返回的都是

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

使用Tcp/Ip Monitor

TCP/IP Monitor不僅可以看到SOAP數(shù)據(jù),還可以獲取HTTP請(qǐng)求和接收的頭信息。

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

2、此工具,相當(dāng)于一個(gè)代理商,啟動(dòng)后它將監(jiān)聽(tīng)本地的某個(gè)端口,然后再將請(qǐng)求轉(zhuǎn)發(fā)給指定的目標(biāo)IP和端口。
獲取到數(shù)據(jù)后,再將數(shù)據(jù)原封不動(dòng)的返回給客戶(hù)。在客戶(hù)看來(lái),永遠(yuǎn)首先訪(fǎng)問(wèn)的都應(yīng)該是這個(gè)代理,否則我們將看不到數(shù)據(jù)傳輸?shù)倪^(guò)程。

3、 配置選項(xiàng):

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

設(shè)置成以下屬性:

第一步:

1)local monitoring port(監(jiān)聽(tīng)本地的端口號(hào)):9876,隨意設(shè)置一個(gè)4位的端口號(hào),一會(huì)將通過(guò)http://127.0.0.1:9876的形式訪(fǎng)問(wèn)

2)host name(要監(jiān)聽(tīng)的服務(wù)器,如m.fzitv.net):127.0.0.1 –因?yàn)楸緳C(jī)發(fā)布了一個(gè)WebService所以監(jiān)聽(tīng)本機(jī)IP.也可以是任意的主機(jī)。

3)Port(要監(jiān)聽(tīng)的目標(biāo)服務(wù)器的端口):6666 - 因?yàn)槲覀儼l(fā)布的WebService為http://127.0.0.1:6666/helloworld所以,6666是需要監(jiān)聽(tīng)的端口號(hào)。

4)Type(監(jiān)聽(tīng)的類(lèi)型):
-- TCP/IP : 將使用原始地址繼續(xù)訪(fǎng)問(wèn)下一個(gè)請(qǐng)求,如用戶(hù)輸入:http://127.0.0.1:9876/helloworld?wsdl此時(shí)將返回wsdl服務(wù)訪(fǎng)問(wèn)地址同前。

-- HTTP :將使用目標(biāo)地址繼續(xù)訪(fǎng)問(wèn)下一個(gè)請(qǐng)求。如用戶(hù)輸入: http://127.0.0.1:9876/helloworld?wsdl在請(qǐng)求方法時(shí)將使用http://127.0.0.1:6666/helloworld來(lái)訪(fǎng)問(wèn)sayHi方法。此種方式將不再會(huì)被代理。因?yàn)橐呀?jīng)不是正在監(jiān)聽(tīng)的端口號(hào)了。

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

time out:設(shè)置訪(fǎng)問(wèn)不成功的連接時(shí)間,保持為0,即不設(shè)置。

在設(shè)置好后,點(diǎn)OK按扭,然后再點(diǎn)右方的Start按扭,監(jiān)聽(tīng)便已經(jīng)啟動(dòng)。

第二步:

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

如何修改wsdl文件的內(nèi)容?

使用WebService的注解。

1、 @WebService-定義服務(wù)

2、 @WebMethod-定義方法

3、 @WebResult-定義返回值

4、@WebParam-定義參數(shù)

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

1、1.5不支持.

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

3、1.6.0_21以后可以只使用@WebService對(duì)類(lèi)進(jìn)行注解.

注釋的作用:

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

當(dāng)修改了WebService注解之后,同時(shí)會(huì)影響客戶(hù)端生成的代碼。

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

示例:

@WebService(name="myName",//對(duì)應(yīng)portType name="myName" 
portName="myPort", //對(duì)應(yīng)服務(wù)中的port name="myPort" 
serviceName="myService",//對(duì)應(yīng)service name="myService" 
targetNamespace="http://leaf.com/mynamespace")//可以隨意書(shū)寫(xiě)類(lèi)似于java中的package 
public class HelloWorld{ 
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
@WebMethod(action="myAction",//定義一個(gè)soapAction="myAction"用于找到這個(gè)方法以執(zhí)行 
operationName="myOperationName")//定義可以調(diào)用的方法,會(huì)生成相應(yīng)類(lèi)的具體方法,operation name=".." 
public @WebResult(name="mySayHelloResult")String//定義返回值的名稱(chēng) 
sayHello(){ 
return "HelloWorld"; 
} 
@WebMethod(action="mySayHiAction",operationName="mySayHiOperationName") 
public @WebResult(name="mySayHiResult")String sayHi(@WebParam(name="myParaName", 
//將參數(shù)放到頭信息中,用于保護(hù)參數(shù),默認(rèn)在body中 
header=true, 
mode=Mode.IN) 
String name){ 
String str = "你好:"+name+",當(dāng)前時(shí)間是:"+sdf.format(new Date()); 
return str; 
} 
public static void main(String[] args) { 
Endpoint.publish("http://127.0.0.1:6666/helloworld",new HelloWorld()); 
} 
}

3:將上面的程序?qū)ν獍l(fā)布以后,我們通過(guò)MyEclipse的WebService Explorer來(lái)訪(fǎng)問(wèn)

你會(huì)發(fā)現(xiàn)和以前不一樣的提示信息,但其實(shí),仍然還是調(diào)用的那同一個(gè)方法。

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

package com.leaf.mynamespace; 
public class Main { 
public static void main(String[] args) { 
//通過(guò)分析wsdl可知從myService中調(diào)用getMyPort返回myName 
MyName myName = new MyService().getMyPort(); 
//通過(guò)myName的mySayHiOperationName來(lái)調(diào)用sayHi方法 
String str = myName.mySayHiOperationName("王健"); 
System.err.println(str); 
} 
}

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

相關(guān)文章

  • idea手動(dòng)刷新git分支的詳細(xì)教程

    idea手動(dòng)刷新git分支的詳細(xì)教程

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

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

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

    Java AOP動(dòng)態(tài)代理詳細(xì)介紹

    AOP是一種設(shè)計(jì)思想,是軟件設(shè)計(jì)領(lǐng)域中的面向切面編程,它是面向?qū)ο缶幊痰囊环N補(bǔ)充和完善。本文將用Java實(shí)現(xiàn)AOP代理的三種方式,需要的可以參考一下
    2022-08-08
  • SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化

    SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerM

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

    packages思維及使用Java添加Android平臺(tái)特定實(shí)現(xiàn)

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

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

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

    SpringBoot使用@ControllerAdvice全局異常處理

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

    在 Spring Boot 中使用 @Autowired和 @Bean

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

    布隆過(guò)濾器詳解以及其在Java中的實(shí)際應(yīng)用

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

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

    在實(shí)際開(kāi)發(fā)中,每次修改代碼就需要重啟項(xiàng)目,重新部署,對(duì)于一個(gè)后端開(kāi)發(fā)者來(lái)說(shuō),重啟確實(shí)很難受。在java開(kāi)發(fā)領(lǐng)域,熱部署一直是一個(gè)難以解決的問(wèn)題,目前java虛擬機(jī)只能實(shí)現(xiàn)方法體的熱部署,對(duì)于整個(gè)類(lèi)的結(jié)構(gòu)修改,仍然需要重啟項(xiàng)目
    2023-01-01

最新評(píng)論

阜新| 阜平县| 贡觉县| 鹿邑县| 安顺市| 台东县| 辽宁省| 崇义县| 亳州市| 绥芬河市| 大冶市| 建平县| 凭祥市| 黄石市| 灌云县| 九江市| 海阳市| 阿鲁科尔沁旗| 鄂托克前旗| 西城区| 三穗县| 长泰县| 保亭| 万山特区| 绥德县| 涡阳县| 拉萨市| 辽阳县| 南岸区| 察哈| 西华县| 沙雅县| 翼城县| 汕头市| 永宁县| 扶余县| 广宁县| 榆中县| 交城县| 虹口区| 北碚区|