Web Service進階 四 WebService註解
@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註解