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