jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService
概念
JAX-WS2.0的全稱Java API for XML-Based Web Service 2.0.JAX-WS2.0是對JAX-RPC1.0規范的擴展,是JAX-RPC1.1的后續版本,JAX-RPC2.0標準發布不久后就被重命名為JAX-WS2.0.
JAX-WS2.0是Sun新的Web service協議棧,是一個完全基于標準實現的。在binding層,使用的是the Java Architecture for XML Binding(JAXB),在parsing層,使用的是the Streaming API for XML(StAX),同時它還完全支持schema規范。
術語
SEI:Service Endpoint Interface
JAX:Java API for XML Web Servcie
JAX-WS RI:JAX-WS Reference Implementation
SAAJ:SOAP with Attachments API for Java
創建 Web Service方式
JAX-WS 2.0有兩種創建Web Service的開發過程:自頂向下和自定向上。自頂向下方式指通過一個WSDL文件來創建Web Service;自底向上是從Java類出發創建Web Service。兩種開發過程最終形成的文件包括:
SEI(對應WSDL中的一個Web Service port,在Java中表現為一個接口);
SEI實現類;
WSDL和XSD文件;
從Java開始的開發步驟:
聲明某個類為@WebService,即將它聲明為SEI實現類,然后對需要暴露的方法標注為@WebMethod;
運行wsgen命令生成其他所需文件;
發布Web Service;
SEI實現類
最簡單的SEI實現類:
packagenet.oseye;importjavax.jws.WebMethod;importjavax.jws.WebService;
@WebServicepublic classHello {
@WebMethodpublicString SayHello(String name){return String.format("Hello,%s",name);
}
}
此時的目錄結構如下:
使用wsgen命令生成所需文件
進入JAX-WS-Java-Server項目目錄如:D:\MyTemp\workspace\JAX-WS-Java-Server>
執行wsgen命令:wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl net.oseye.Hello
執行中可能出現“directory not found: wsdl”,手動建立wsdl目錄。
成功后可在bin、src目錄的命名空間net.oseye里看到生成的jaxws文件夾,以及在wsdl目錄中的HelloService.wsdl和HelloService_schema1.xsd。
此時的目錄結構如下:
發布Web Service
在應用程序中發布,JDK停工非常方便的API:Enndpoint.publish
packagenet.oseye;importjavax.xml.ws.Endpoint;public classMain {/***@paramargs*/
public static voidmain(String[] args) {
Endpoint.publish("http://localhost:8808/HelloService", newHello());
}
}
運行應用程序,地址欄輸入:http://localhost:8808/HelloService,接客預覽:
wsgen工具簡介
wsgen 是在JDK的bin目錄下的一個exe文件(Windows版),該命 令的主要功能是用來生成合適的JAX-WS。它讀取Web Service的終端類文件,同時生成所有用于發布Web Service所依賴的源代碼文件和經過編譯過的二進制類文件。這里要特別說明的是,通常在Web Service Bean中用到的異常類會另外生成一個描述Bean,如果Web Service Bean中的方法有申明拋出異常,這一步是必需的,否則服務器無法綁定該對像。此外,wsgen 還能輔助生成WSDL和相關的xsd文件。wsgen 從資源文件生成一個完整的操作列表并驗證web service是否合法,可以完整發布。
命令參數說明:
-cp 定義classpath
-r 生成 bean的wsdl文件的存放目錄
-s 生成發布Web Service的源代碼文件的存放目錄(如果方法有拋出異常,則會生成該異常的描述類源文件)
-d 生成發布Web Service的編譯過的二進制類文件的存放目錄(該異常的描述類的class文件)
總結
以上是生活随笔為你收集整理的jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单java socket_基于Java
- 下一篇: java中什么是类型_什么是Java中基