欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WebService教程詳解(二)

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

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

使用工具的原因:

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

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

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

什么是SOAP?

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

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

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

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)證時,返回的都是

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

使用Tcp/Ip Monitor

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

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

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

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

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

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

第一步:

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

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

3)Port(要監(jiān)聽的目標(biāo)服務(wù)器的端口):6666 - 因?yàn)槲覀儼l(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服務(wù)訪問地址同前。

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

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

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

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

第二步:

在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文件的內(nèi)容?

使用WebService的注解。

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

2、 @WebMethod-定義方法

3、 @WebResult-定義返回值

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

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

1、1.5不支持.

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

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

注釋的作用:

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

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

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

示例:

@WebService(name="myName",//對應(yīng)portType name="myName" 
portName="myPort", //對應(yīng)服務(wù)中的port name="myPort" 
serviceName="myService",//對應(yīng)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")//定義可以調(diào)用的方法,會生成相應(yīng)類的具體方法,operation name=".." 
public @WebResult(name="mySayHelloResult")String//定義返回值的名稱 
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)前時間是:"+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ā)布以后,我們通過MyEclipse的WebService Explorer來訪問

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

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

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

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

相關(guān)文章

  • java基于UDP實(shí)現(xiàn)圖片群發(fā)功能

    java基于UDP實(shí)現(xiàn)圖片群發(fā)功能

    這篇文章主要為大家詳細(xì)介紹了java基于UDP實(shí)現(xiàn)圖片群發(fā)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java foreach循環(huán)為什么不能賦值的講解

    java foreach循環(huán)為什么不能賦值的講解

    這篇文章主要介紹了java foreach循環(huán)為什么不能賦值的講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java代碼實(shí)現(xiàn)對properties文件有序的讀寫的示例

    Java代碼實(shí)現(xiàn)對properties文件有序的讀寫的示例

    本篇文章主要介紹了Java代碼實(shí)現(xiàn)對properties文件有序的讀寫的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Spring?boot?自定義?Starter及自動配置的方法

    Spring?boot?自定義?Starter及自動配置的方法

    Starter?組件是?Spring?boot?的一個核心特性,Starter組件的出現(xiàn)極大的簡化了項(xiàng)目開發(fā),這篇文章主要介紹了Spring?boot?自定義?Starter?及?自動配置,需要的朋友可以參考下
    2022-12-12
  • 詳解Java類加載器與雙親委派機(jī)制

    詳解Java類加載器與雙親委派機(jī)制

    這篇文章主要為大家介紹一下Java中的類加載器與雙親委派機(jī)制,文中通過示例為大家進(jìn)行了詳細(xì)的介紹,對我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-08-08
  • Spring Boot使用Druid和監(jiān)控配置方法

    Spring Boot使用Druid和監(jiān)控配置方法

    Druid是Java語言中最好的數(shù)據(jù)庫連接池,并且能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能。下面來說明如何在 Spring Boot 中配置使用Druid
    2017-04-04
  • Java NIO Buffer過程詳解

    Java NIO Buffer過程詳解

    這篇文章主要介紹了Java NIO Buffer過程詳解,緩沖區(qū)在java nio中負(fù)責(zé)數(shù)據(jù)的存儲。緩沖區(qū)就是數(shù)組。用于存儲不同數(shù)據(jù)類型的數(shù)據(jù)。,需要的朋友可以參考下
    2019-06-06
  • 詳解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)

    詳解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)

    這篇文章主要介紹了詳解JAVAEE——SSH三大框架整合(spring+struts2+hibernate),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • java多線程實(shí)現(xiàn)下載圖片并壓縮

    java多線程實(shí)現(xiàn)下載圖片并壓縮

    這篇文章主要為大家詳細(xì)介紹了java多線程實(shí)現(xiàn)下載圖片并壓縮,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Java ClassCastException異常解決方案

    Java ClassCastException異常解決方案

    這篇文章主要介紹了Java ClassCastException異常解決方案,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論