1. 程式人生 > >Web Service進階 四 WebService註解

Web Service進階 四 WebService註解

inb 系統 此外 結果 point err lose -s opera

@WebService

1、serviceName: 對外發布的服務名,指定 Web Service 的服務名稱:wsdl:service。缺省值為 Java 類的簡單名稱 + Service。(字符串)

2、endpointInterface: 服務接口全路徑, 指定做SEI(Service EndPoint Interface)服務端點接口

3、name:此屬性的值包含XML Web Service的名稱。在默認情況下,該值是實現XML Web Service的類的名稱,wsdl:portType 的名稱。缺省值為 Java 類或接口的非限定名稱。(字符串)

4、portName: wsdl:portName。缺省值為 WebService.name+Port。

5、targetNamespace:指定你想要的名稱空間,默認是使用接口實現類的包名的反綴。

6、wsdlLocation:指定用於定義 Web Service 的 WSDL 文檔的 Web 地址。Web 地址可以是相對路徑或絕對路徑。(字符串)

註意:實現類上可以不添加Webservice註解

@WebMethod

註釋表示作為一項 Web Service 操作的方法,將此註釋應用於客戶機或服務器服務端點接口(SEI)上的方法,或者應用於 JavaBeans 端點的服務器端點實現類。

要點:

僅支持在使用 @WebService 註釋來註釋的類上使用 @WebMethod 註釋

1、operationName:指定與此方法相匹配的wsdl:operation 的名稱。缺省值為 Java 方法的名稱。(字符串)

2、action:定義此操作的行為。對於 SOAP 綁定,此值將確定 SOAPAction 頭的值。缺省值為 Java 方法的名稱。(字符串)

3、exclude:指定是否從 Web Service 中排除某一方法。缺省值為 false。(布爾值)

@Oneway

註釋將一個方法表示為只有輸入消息而沒有輸出消息的 Web Service 單向操作。

將此註釋應用於客戶機或服務器服務端點接口(SEI)上的方法,或者應用於 JavaBeans 端點的服務器端點實現類

@WebParam

註釋用於定制從單個參數至 Web Service 消息部件和 XML 元素的映射。

將此註釋應用於客戶機或服務器服務端點接口(SEI)上的方法,或者應用於 JavaBeans 端點的服務器端點實現類。

1、name :參數的名稱。如果操作是遠程過程調用(RPC)類型並且未指定partName 屬性,那麽這是用於表示參數的 wsdl:part 屬性的名稱。

如果操作是文檔類型或者參數映射至某個頭,那麽 -name 是用於表示該參數的 XML 元素的局部名稱。如果操作是文檔類型、

參數類型為 BARE 並且方式為 OUT 或 INOUT,那麽必須指定此屬性。(字符串)

2、partName:定義用於表示此參數的 wsdl:part屬性的名稱。僅當操作類型為 RPC 或者操作是文檔類型並且參數類型為BARE 時才使用此參數。(字符串)

3、targetNamespace:指定參數的 XML 元素的 XML 名稱空間。當屬性映射至 XML 元素時,僅應用於文檔綁定。缺省值為 Web Service 的 targetNamespace。(字符串)

4、mode:此值表示此方法的參數流的方向。有效值為 IN、INOUT 和 OUT。(字符串)

5、header:指定參數是在消息頭還是消息體中。缺省值為 false。(布爾值)

@WebResult

註釋用於定制從返回值至 WSDL 部件或 XML 元素的映射。將此註釋應用於客戶機或服務器服務端點接口(SEI)上的方法,或者應用於 JavaBeans 端點的服務器端點實現類。

1、name:當返回值列示在 WSDL 文件中並且在連接上的消息中找到該返回值時,指定該返回值的名稱。對於 RPC 綁定,這是用於表示返回值的 wsdl:part屬性的名稱。對於文檔綁定,-name參數是用於表示返回值的 XML 元素的局部名。對於 RPC 和 DOCUMENT/WRAPPED 綁定,缺省值為 return。對於 DOCUMENT/BARE 綁定,缺省值為方法名 + Response。(字符串)

2、targetNamespace:指定返回值的 XML 名稱空間。僅當操作類型為 RPC 或者操作是文檔類型並且參數類型為 BARE 時才使用此參數。(字符串)

3、header:指定頭中是否附帶結果。缺省值為false。(布爾值)

4、partName:指定 RPC 或 DOCUMENT/BARE 操作的結果的部件名稱。缺省值為@WebResult.name。(字符串)

@HandlerChain

註釋用於使 Web Service 與外部定義的處理程序鏈相關聯。只能通過對 SEI 或實現類使用 @HandlerChain 註釋來配置服務器端的處理程序。

但是可以使用多種方法來配置客戶端的處理程序。可以通過對生成的服務類或者 SEI 使用 @HandlerChain 註釋來配置客戶端的處理程序。此外,可以按程序在服務上註冊您自己的 HandlerResolver 接口實現,或者按程序在綁定對象上設置處理程序鏈。

1、file:指定處理程序鏈文件所在的位置。文件位置可以是采用外部格式的絕對 java.net.URL,也可以是類文件中的相對路徑。(字符串)

2、name:指定配置文件中處理程序鏈的名稱。

以下為一段代碼示例:

package cn.itcast.service;
 2 
 3 import javax.jws.WebMethod;
 4 import javax.jws.WebParam;
 5 import javax.jws.WebResult;
 6 import javax.jws.WebService;
 7 import javax.xml.ws.Endpoint;
 8 /**
 9  * 將 Java 類標記為實現 Web Service,或者將 Java 接口標記為定義 Web Service 接口
10  * @author 
11  *
12  */
13 //修改目標空間   ,修改服務名         在wsdl那裏的xml文件顯示對應的修改信息
14 @WebService(targetNamespace="http://www.itcast.cn",serviceName="MyService")
15 public class HelloService {
16     //修改方法名  返回值的名字
17     @WebMethod(operationName="hello")
18     @WebResult(name="ret")
19     public String sayHello(
20             //修改參數名字 
21             @WebParam(name="name")
22             String name,
23             @WebParam(name="age")
24             int age){
25         System.out.println("sayHello called...");
26         return "hello " + name;
27     }
28     //此方法 本系統測試 不對外發布
29     @WebMethod(exclude=true)
30     public String sayHello2(String name){
31         System.out.println("sayHello called...");
32         return "hello " + name;
33     }
34     
35     public static void main(String[] args) {
36         //參數1:綁定服務的地址   參數2:提供服務的實例
37         Endpoint.publish("http://192.168.1.101:5678/hello", new HelloService());
38         System.out.println("server ready...");
39     }
40 }

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!希望你也加入到我們人工智能的隊伍中來!https://www.cnblogs.com/captainbed

Web Service進階 四 WebService註解