JAX-WSJava的Web服務(wù)規(guī)范API
JAX-WS (JavaTM API for XML-Based Web Services)規(guī)范是一組XML web services的JAVA API。JAX-WS允許開發(fā)者可以選擇RPC-oriented或者message-oriented 來實(shí)現(xiàn)自己的web services。
在 JAX-WS中,一個(gè)遠(yuǎn)程調(diào)用可以轉(zhuǎn)換為一個(gè)基于XML的協(xié)議例如SOAP。在使用JAX-WS過程中,開發(fā)者不需要編寫任何生成和處理SOAP消息的代碼。JAX-WS的運(yùn)行時(shí)實(shí)現(xiàn)會將這些API的調(diào)用轉(zhuǎn)換成為對應(yīng)的SOAP消息。
在服務(wù)器端,用戶只需要通過Java語言定義遠(yuǎn)程調(diào)用所需要實(shí)現(xiàn)的接口SEI (service endpoint interface),并提供相關(guān)的實(shí)現(xiàn),通過調(diào)用JAX-WS的服務(wù)發(fā)布接口就可以將其發(fā)布為WebService接口。
在客戶端,用戶可以通過JAX-WS的API創(chuàng)建一個(gè)代理(用本地對象來替代遠(yuǎn)程的服務(wù))來實(shí)現(xiàn)對于遠(yuǎn)程服務(wù)器端的調(diào)用。
當(dāng)然 JAX-WS 也提供了一組針對底層消息進(jìn)行操作的API調(diào)用,你可以通過Dispatch 直接使用SOAP消息或XML消息發(fā)送請求或者使用Provider處理SOAP或XML消息。
通過web service所提供的互操作環(huán)境,我們可以用JAX-WS輕松實(shí)現(xiàn)JAVA平臺與其他編程環(huán)境(.net等)的互操作。
JAX-WS與JAX-RPC之間的關(guān)系
Sun最開始的web services的實(shí)現(xiàn)是JAX-RPC 1.1 (JSR 101)。這個(gè)實(shí)現(xiàn)是基于Java的RPC,并不完全支持schema規(guī)范,同時(shí)沒有對Binding和Parsing定義標(biāo)準(zhǔn)的實(shí)現(xiàn)。
JAX-WS2.0 (JSR 224)是Sun新的web services協(xié)議棧,是一個(gè)完全基于標(biāo)準(zhǔn)的實(shí)現(xiàn)。在binding層,使用的是the Java Architecture for XML Binding (JAXB, JSR 222),在parsing層,使用的是the Streaming API for XML (StAX, JSR 173),同時(shí)它還完全支持schema規(guī)范。
