jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService
概念
JAX-WS2.0的全稱(chēng)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的開(kāi)發(fā)過(guò)程:自頂向下和自定向上。自頂向下方式指通過(guò)一個(gè)WSDL文件來(lái)創(chuàng)建Web Service;自底向上是從Java類(lèi)出發(fā)創(chuàng)建Web Service。兩種開(kāi)發(fā)過(guò)程最終形成的文件包括:
SEI(對(duì)應(yīng)WSDL中的一個(gè)Web Service port,在Java中表現(xiàn)為一個(gè)接口);
SEI實(shí)現(xiàn)類(lèi);
WSDL和XSD文件;
從Java開(kāi)始的開(kāi)發(fā)步驟:
聲明某個(gè)類(lèi)為@WebService,即將它聲明為SEI實(shí)現(xiàn)類(lèi),然后對(duì)需要暴露的方法標(biāo)注為@WebMethod;
運(yùn)行wsgen命令生成其他所需文件;
發(fā)布Web Service;
SEI實(shí)現(xiàn)類(lèi)
最簡(jiǎn)單的SEI實(shí)現(xiàn)類(lèi):
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版),該命 令的主要功能是用來(lái)生成合適的JAX-WS。它讀取Web Service的終端類(lèi)文件,同時(shí)生成所有用于發(fā)布Web Service所依賴的源代碼文件和經(jīng)過(guò)編譯過(guò)的二進(jìn)制類(lèi)文件。這里要特別說(shuō)明的是,通常在Web Service Bean中用到的異常類(lèi)會(huì)另外生成一個(gè)描述Bean,如果Web Service Bean中的方法有申明拋出異常,這一步是必需的,否則服務(wù)器無(wú)法綁定該對(duì)像。此外,wsgen 還能輔助生成WSDL和相關(guān)的xsd文件。wsgen 從資源文件生成一個(gè)完整的操作列表并驗(yàn)證web service是否合法,可以完整發(fā)布。
命令參數(shù)說(shuō)明:
-cp 定義classpath
-r 生成 bean的wsdl文件的存放目錄
-s 生成發(fā)布Web Service的源代碼文件的存放目錄(如果方法有拋出異常,則會(huì)生成該異常的描述類(lèi)源文件)
-d 生成發(fā)布Web Service的編譯過(guò)的二進(jìn)制類(lèi)文件的存放目錄(該異常的描述類(lèi)的class文件)
總結(jié)
以上是生活随笔為你收集整理的jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 简单java socket_基于Java
- 下一篇: java中什么是类型_什么是Java中基