版本歷史: 2006.12.17 發布 2006.12.18 更正不加標準輸入流讀取字符,程序將立即退出,將不能提供服務。將程序列表的行號去掉,方便代碼粘貼。 在前一篇文章中,講述了Java SE 6.0新特征的概觀。本文將介紹Web服務。 當然,在進行本文之前,請首先下載Java SE 6.0,詳情請瀏覽野馬奔騰而出,Java SE 6 正式版發布 。
Java Web 涉及到的JSR有 105,173,181,222,224,250。
由于Web服務日趨流行,利用Web服務的功能性的API特征正從最新的Java EE版本中向Java SE 6平臺遷移。換言之,針對Web服務不需另外加入額外的工具,在Java EE和Java SE平臺擁有相同的API。野馬將大把不同的Web服務相關的API加到標準的工具柜中:以JSR 181針對Java 平臺的Web服務元數據,通過JSR 224的基于XML 的Web服務Java API(JAX-WS);針對Java的帶有附件的SOAP API(SAAJ)作為JSR 67 。
與三個Web服務API相關的包新增到Java SE 6.0里:JAX-WS API 放置到javax.xml.ws包; SAAJ類在javax.xml.soap 包; Web服務的元數據類放置在javax.jws包里。
javax.jws 包
JSR 181 及其針對Java 平臺Web服務元數據的規范提供一個在類中利用標注設計和開發Web服務的機制。標注從J2SE 5.0引入,在Java SE 6.0得到了進一步擴展。在第10章將會完整描述。但是,標注基本上允許將@tag加入到類,方法和特性來描述相關的元數據。一個解析器然后能定位標記并采取適當的行動;盡管行動什么時候發生完全依賴于標記自身。
JAX-WS 2.0 很容易使用. 本文將介紹如何使用Java SE 6。以JAX-WS如何建立一個簡單的Web服務。首先建立一個建立一個將要作為Web服務發布的類,如表1所示:
Java 代碼 列表1
javax.jws.WebService
@WebService
在此,有兩個基本的標注:@WebService和@WebMethod。@WebService標注指明HelloService 類作為Web服務。如果沒有制定,標注的名稱就是類的名稱。也能制定命名空間,服務名,WSDL 位置和endpoint 接口等。在指定的上下文環境中,可以使用javax.xml.ws.Endpoint類的publish()靜態方法發布上面的類作為Web服務。代碼見列表3:
javax.xml.ws.Endpoint類的publish()靜態方法發布上面的類作為Web服務。代碼見列表3:
publish()
現在,用javac編譯源代碼。但是源文件能做什么呢?通過對源文件運行 javac編譯器進行編譯只是產生了class文件。并沒有產生特殊的東西。但是在編譯類之后,也需要運行wsgen 命令行工具(wsgen 是Web service generator的縮寫)。編譯源代碼后還必需完成更多的步驟:像下面一樣調用wsgen工具。
就這么簡單。當運行應用程序時,Java SE 6平臺擁有一個小的Web應用服務器,它將在地址為http://localhost:8080/WebServiceExample/circlefunctions 發布Web服務。通過顯示CircleFunction的WSDL 來驗證Web服務。當JVM仍然運行時,在瀏覽器輸入:
http://localhost:8080/WebServiceExample/circlefunctions
Powered by: BlogJava Copyright © 網路冷眼@BlogJava