在J2EE上部署Web服務(Web Services)

標  題: 在J2EE上部署Web服務(Web Services)(1)
發信站: BBS 水木清華站 (Sat Apr 27 17:52:30 2002)

本文轉載字 developer.ccidnet.com

Web服務繼續從開發者那裏得到動力。從2002年9月web服務概念首次引入時笨拙的定義
開始,現在已經發展到在2002年3月JavaOne上有63個會議是完全關於該主題的。(會議
幻燈片鏈接,見更多信息)。所以,隨着Java 2 平臺上開發Web服務關鍵軟件包的更新
,我們決定更新Java 2 平臺企業版(J2EE)上部署Web服務的基本指南。
J2EE的靈活性和可伸縮性使得它成爲構建多層企業級應用的一個可選擇平臺。在J2EE平
臺上部署Web服務是一個很自然的擴展。Java Web Services Developer Pack(Java WS
DP或JWSDP)是一個一體化的下載包,它包含了簡化Java平臺上構建Web服務的關鍵技術
。JWSDP是Sun和Java社團的其他成員共同開發的工具和API包。它可以幫助你迅速快捷地
開發Web服務。
你可以在J2EE上運行Java WSDP構件或者將構件與J2EE集成。本文先簡略地介紹Web服務
,然後說明如何:
建立開發Web服務(JWSDP EA2)的J2EE 1.3.1環境
根據Sun Quality Expectations(SQE)組的指南將Web服務與J2EE集成
根據SQE組的指南在J2EE上部署web服務示例。
在J2EE上運行web服務
這些指南覆蓋了UNIX和Windows。一般的指導適合於Windows平臺上的開發者,對於UNIX
上的例外使用UNIX前綴進行標識。屏幕畫面是Windows平臺的,但是因爲JWSDP使用Swin
g,所以UNIX開發者也應該可以看到同樣的畫面。
注意:該指南是爲JWSDP EA2編寫的。如果你一直使用JWSDP EA1,那麼下載EA2,它在幾
個方面都有改進。
Web服務介紹
Web服務是確定從任何連接Internet的具有web服務能力的機器提供的服務。Web服務通過
一組基於XML的開放標準使得互操作性成爲可能。商業上使用基於XML的Web服務描述語言
(Web Services Description Language,WSDL)描述它們的Web服務,並用一種基於XM
L的註冊方式,如統一描述、發現和集成(Universal Description, Discovery and In
tegration,UDDI)協議,將它們列出來。 UDDI允許你查找公開的可訪問的web服務,如
圖1所示。客戶向目錄發送一個服務請求,目錄通知客戶符合請求條件的已註冊服務。然
後使用SOAP,一種利用HTTP和XML作爲交換機制的協議,在不同平臺的應用程序之間進行
通信。
圖1 Web服務協議
如果想了解更多的有關web服務的背景知識,可以參考更多信息中的介紹性資料。
下載和安裝J2EE和JWSDP
如果還沒有下載和安裝J2EE SDK1.3.1和JWSDP EA2,則下載並安裝該指南所介紹的J2EE
 SDK1.3.1和JWSDP EA2。安裝是自解壓的(兩個包都含有安裝和配置手冊),最主要的
配置步驟是要確保環境變量J2EE_HOME和JWSDP_HOME指向正確的安裝路徑,因爲許多其他
的環境變量都依賴她們的配置。
JWSDP和J2EE集成
集成過程包括兩項主要任務:將JWSDP相關的JAR文件添加到J2EE中,然後進行一些端口
配置並設置安全權限。
注意:如果安裝了Ant build工具,則可以運行腳本:%JWSDP_HOME%/bin/jw2sdponj2ee
.bat (UNIX:$JWSDP_HOME/bin/jw2sdponj2ee.sh)。這些腳本使用一個安裝JWSDP的b
in目錄下的Ant build文件(jwsdponj2ee.xml)。如果讓Ant執行配置過程,可以跳到下
一節瞭解如何在J2EE平臺上打包和部署web服務。如果想了解內部機制,可以按照這裏給
出的指南手工進行配置。關於Ant腳本的更多信息,請參看:%JWSDP_HOME%/docs/jwsdp
onj2ee.html($JWSDP_HOME/docs/jwsdponj2ee.html)。
爲了添加必要的JWSDP相關JAR文件,首先使用幾個JWSDP JAR文件建立兩個主要的JAR文
件(jwsdp-common.jar和jwsdp-endorsed.jar),然後將這兩個新的JAR文件拷貝到正確
位置並進行一些配置。
建立jwsdp-common.jar文件
1、 建立一個臨時目錄(例如:%JWSDP_HOME%/work/jwsdp_jars)。(UNIX:$JWSDP_H
OME/work/jwsdp_jars)
2、 將下列JAR文件從%JWSDP_HOME%/common/lib拷貝到%JWSDP_HOME%/work/jwsdp_jars
。%JWSDP_HOME%環境變量定義了安裝JWSDP的絕對路徑。例如,在我的Windows機器上,
它是c:/jwsdp。(UNIX:從$JWSDP_HOME/common/lib拷貝到$JWSDP_HOME/work/jwsdp_j
ars。$JWSDP_HOME環境變量定義了安裝JWSDP的home目錄)
mail.jar
該JAR文件包含JavaMail API和所有的服務提供者(service provider)。
activation.jar
該JAR文件包含了組成JavaBeans Activiation Framwork(JAF)的類。
dom4j.jar dom4j.jar是一個針對Java的開放源代碼XML框架。它允許讀、寫、定位、新
建和修改XML文檔。它與DOM和SAX集成並與完全Xpath支持無縫集成。dom4j.jar文件包含
所有dom4j代碼和Xpath引擎,但沒有SAX和DOM接口。如果你使用JAXP和crimson.jar或x
erces.jar的話,就要使用該JAR文件。
jaxrpc-api.jar和jaxrpc-ri.jar 這兩個JAR文件包含JAX-RPC API和基於XML遠程過程調
用(Remote Procedure Call,RPC)Java API的參考實現,它們使得Java開發者可以根
據簡單對象訪問協議(SOAP)規範構建基於XML RPC功能的web應用程序和web服務。
jaxm-api.jar和jaxm-client.jar 這兩個JAR文件包含支持XML 消息傳輸的Java API參考
實現 。JAXM是一個發送和接受SOAP消息的基於XML的消息傳輸系統。
jaxr-api.jar和jaxr-ri.jar 這兩個JAR文件包含了JAXR或者說支持XML註冊的Java API
參考實現。JAXR提供了訪問不同類型XML註冊的統一標準。它包括JAXR信息模型和ebXml
註冊及UDDI註冊規範之間的詳細綁定。
jaxp-api.jar JAXP是支持XML處理的Java API。它支持利用DOM、SAX和XSLT處理XML文檔

castor-0.9.3.9-xml.jar Castor是一個XML數據綁定框架。不像處理XML文檔結構的DOM
和SAX,Castor可以通過代表數據的對象模型處理定義在XML文檔中的數據。Castor可以
從XML建立幾乎所有的如bean的Java對象,或相反。
commons-logging.jar 該JAR文件包含了一個日誌記錄庫包
fscontext.jar和providerutil.jar 這兩個JAR文件包含文件系統服務provider。
3、 將下列JAR文件從%JWSDP_HOME%/tools/jstl拷貝到%JWSDP_HOME%/work/jwsdp_jar(
UNIX:從$JWSDP_HOME/tools/jstl拷貝到$JWSDP_HOME/work/jwsdp_jar)。
jstl.jar
standard.jar
這兩個JAR文件提供了JSP標準標籤庫的實現。
4、 將provider.jar從%JWSDP_HOME%/services/jaxm-provider/WEB-INF/lib拷貝到%JW
SDP_HOME%/work/jwsdp._jars(UNIX:從$JWSDP_HOME/services/jaxm-provider/WEB-I
NF/lib拷貝到$JWSDP_HOME/work/jwsdp._jars)。
provider.jar是一個JAXM provider,JAXM provider是路由和傳輸消息的消息傳輸服務
。它所做的一切對用戶都是透明的。只有當應用程序異步(或單向)通信時才需要JAXM
 provider。
5、 將目錄改變爲從%JWSDP_HOME%/work/jwsdp_jars(UNIX:$JWSDP_HOME/work/jwsdp
_jars)。
6、 利用目錄%JWSDP_HOME%/work/jwsdp_jars(UNIX:$JWSDP_HOME/work/jwsdp_jars)
下的文件建立jwsdp-common.jar。如下:
jar -cvf %JWSDP_HOME%/work/jwsdp-common.jar .
注意命令末尾的點。
(UNIX:jar -cvf $JWSDP_HOME/work/jwsdp-common.jars . 注意命令末尾的點。)
現在%JWSDP_HOME%/work下就有了一個jwsdp-common.jar(UNIX:$JWSDP_HOME/work)。

建立jwsdp-endorsed.jar文件
1、 建立一個臨時目錄(例如:%JWSDP_HOME%/work/endorsed_jars)。(UNIX:$JWSD
P_HOME%/work/endorsed_jars)
2、 將下列JAR文件從%JWSDP_HOME%/common/endorsed拷貝到%JWSDP_HOME%/work/endor
sed_jars。(UNIX:從%JWSDP_HOME%/common/endorsed拷貝到$JWSDP_HOME%/work/endo
rsed_jars。)
sax.jar SAX是支持XML的簡單API(Simple API for XML)。該JAR文件包含SAX的實現。

dom.jar DOM是文檔對象模型。該文件包含DOM的實現。
xercesImpl.jar 該JAR文件包含所有實現解析器支持的標準API的解析器類。
xalan.jar 該JAR文件包含XSLT樣式表處理器。它實現了XSLT和Xpath。
xsltc.jar 該JAR文件提供了一個XSLT樣式表的編譯器和運行時處理器。
3、 將目錄改變到%JWSDP_HOME%/work/endorsed_jars(UNIX:$JWSDP_HOME%/work/end
orsed_jars)。
4、 利用目錄%JWSDP_HOME%/work/endorsed_jars 下的JAR文件建立jwsdp-endorsed.ja
r(UNIX:$JWSDP_HOME%/work/endorsed_jars),如下:
jar -cvf %JWSDP_HOME%/work/jwsdp-endorsed.jar .
注意命令末尾的點。
(UNIX:jar -cvf $JWSDP_HOME%/work/jwsdp-endorsed.jar .)
現在%JWSDP_HOME%/work目錄下就有了一個jwsdp-endorsed.jar文件(UNIX:$JWSDP_HO
ME%/work)
將JAR文件拷貝到正確位置並設置類路徑:
1、 在%J2EE_HOME%/lib/system目錄下建立一個名爲endorsed的目錄(UNIX:$J2EE_HO
ME/lib/system)。這個在J2SDK1.4中引入的系統屬性指定了Java運行時系統查找JAR文
件的目錄。
2、 將jwsdp-endorsed.jar從%JWSDP_HOME%/work拷貝到%J2EE_HOME%/lib/system/endo
rsed(UNIX:$J2EE_HOME/lib/system/endorsed)
3、 打開J2EE環境配置腳本文件%J2EE_HOME%/lib/setenv.bat(UNIX:$J2EE_HOME/lib
/setevn.sh),在這裏設置J2EE環境變量,將jwsdp-endorsed.jar插入CPATH的開始位置

set CAPTH= %SYSTEM_LIB_DIR%/endorsed/jwsdp-endorsed.jar;%CLOUDJARS%;%CLASSES
DIR%
CPATH的其他部分應該保持不變。在UNIX下:CPATH=$SYSTEM_LIB_DIR/endorsed/jwsdp-
endorsed.jar 等等。
4、 打開用戶配置腳本文件 %J2EE_HOME%/bin/userconfig.bat(UNIX:$J2EE_HOME/bi
n/userconfig.sh)並將jwsdp-common.jar通過下列操作添加到J2EE_CLASSPATH中:
通過去掉J2EE_CLASSPATH前面的rem使J2EE_CLASSPATH生效。
在J2EE_CLASSPATH前新增加定義SYSTEM_LIB_DIR的一行,如下: set SYSTEM_LIB_DIR=
%J2EE_HOME%/lib/system (UNIX: SYSTEM_LIB_DIR=$J2EE_HOME/lib/system)
設置J2EE_CLASSPATH如下:
set J2EE_CLASSPATH=%SYSTEM_LIB_DIR%/jwsdp-common.jar (UNIX: J2EE_CLASSPATH=$
SYSTEM_LIB_DIR/jwsdp-common.jar)
5、 打開J2EE服務器腳本文件%J2EE_HOME%/bin/j2ee.bat(UNIX: $J2EE_HOME/bin/j2e
e.sh),在文件的最後一行找到the %JAVA_COMMAND% (UNIX: JAVACMD),然後指定系統
屬性java.endorsed.dirs如下:
%JAVA_COMMAND%-Djava.endorsed.dirs=%J2EE_HOME%/lib/system/endorsed (其餘行保
持不變) -classpath %CPATH% com.sun.enterprise.server.J2EEServer and so on)
(UNIX: $JAVACMD -Djava.endorsed.dirs=$J2EE_HOME/lib/system/endorsed 等等)
注意:系統屬性java.endorsed.dirs指定了Java運行時環境查找JAR文件的一個或多個目
錄。只有當在J2SDK1.4上運行J2EE SDK1.3.x時才設置該系統屬性。
配置web服務器端口和設置安全權限
1、 打開文件%J2EE_HOME%/config/web.properties (UNIX: $J2EE_HOME/config/web.
properties)將http.port號碼從8000改成8080,因爲JWSDP使用的Tomcat web服務器缺
省情況下使用8080端口,一些JWSDP示例程序也使用這個端口。web.properties文件用來
設置web屬性(如端口號、HTML根目錄、日誌文件等等)。因此http.port=8080是HTTP服
務用來服務請求的端口。
2、 打開文件%J2EE_HOME%/lib/security/server.policy (UNIX: $J2EE_HOME/lib/sec
urity/server.policy),然後在文件的末尾缺省域中指定下列權限:
permission java.io.FilePermission "<ALL FILES>", "read,write,delete";
permission java.util.PropertyPermission "*", "read,write";
permission java.lang.RuntimePermission "modifyThreadGroup";
server.policy是J2EE服務器的Java 安全策略文件。它包含J2EE引擎的Java 安全策略設
置和授權給一個程序特定訪問的權限。
添加到安全策略文件中的第一行授權在所有文件上有讀、寫和刪除的權限。第二行允許
讀和寫任何系統屬性。讀權限允許調用System.getProperty。寫權限允許調用System.s
etProperty。第三行是運行時權限。在本例中,這個屬性運行通過調用ThreadGroup的d
estroy, getParent, resume, setDaemon, setMaxPriority, stop 和 suspend方法修改
線程組。你需要所有這些權限運行JWSDP附帶的JAXM Provider Admin Tool,jaxm-remot
e.jar和jaxm-soaprp例子。

打包和部署Web服務
在開始講述怎樣在J2EE上部署web服務之前,讓我們先回顧一下J2EE上部署服務的步驟。
你可以按照同樣的步驟部署本文後面介紹的其他構件。(如果你有豐富的J2EE經驗而不
需要的話,請跳到下一節,該節詳細描述了爲web服務部署一個特殊工具。部署JAXM Pr
ovider 和 Admin Tool)
在J2EE上部署服務
在J2EE上部署服務時,利用deploytool建立一個新的應用程序EAR文件,且將它與適當的
WAR文件關聯並設置web上下文(context)。deploytool通過與J2EE服務器通信來部署和
反部署構件。
注意:jaxrservlet是一個爲了說明部署步驟而構想出來的虛構文件。該文件實際上在J
WSDP EA2中並不存在。
在J2EE SDK容器中部署服務
1、 如果J2EE服務器沒有運行,則到%J2EE_HOME%/bin (UNIX: $J2EE_HOME/bin)目錄下
並執行j2ee命令來啓動它。J2EE服務器必須在啓動deploytool之前運行。J2EE服務器啓
動可能需要幾分鐘,等待直到看到"J2EE Server startup complete"的消息。如下:
c:/j2sdkee1.3.1/bin> j2ee
J2EE server listen port: 1050
Redirecting the output and error streams to the following files
c:/j2sdkee1.3.1/logs/java/j2ee/j2ee/system.out
c:/j2sdkee1.3.1/logs/java/j2ee/j2ee/system.err
J2EE server startup complete
2、 到%J2EE_HOME%/bin (UNIX: $J2EE_HOME/bin)目錄,通過執行deploytool命令啓動
deploytool。
3、 選擇File->New Application,建立一個新的應用程序EAR文件,如圖2所示。
注意:該文的屏幕畫面是Windows平臺的,但是因爲deploytool使用Swing,所以UNIX開
發者也應該可以看到同樣的畫面。
圖2:建立一個新的EAR文件
4、 在出現的對話框中鍵入要創建的EAR文件名和在deploytool窗口中顯示的名字。只要
願意,可以取任何名字。如圖3所示。我建立了一個名爲ear-files的目錄存放所有的EA
R文件。我的文件的名是jaxrservlet。它的顯示名和文件名一樣。
圖3:選擇一個文件名
5、 往應用程序中添加WAR文件(在本例中,是jaxrservlet.war)。選擇File->Add to
 Application->Web War,然後定位WAR文件並選擇它。
6、 設置Web Context,指定web上下文:
選擇應用程序(本例中假定是jaxrservlet 應用程序)
選擇Web Context頁
在如圖4所示的Context Root字段中鍵入上下文。
7、 在Tool菜單中選擇Deploy,部署該應用程序。進度對話框報告部署進度。它告訴你
什麼時候部署完成,如圖5所示。
圖5: 部署應用程序
部署JAXM Provider 及其Admin Tool
JAXM Provider是一個異步通信的消息傳輸提供者。JAXM Provider Admin Tool允許你配
置provider。在運行JAXM Provider Admin Tool前,將JAXM Provider 和JAXM Provide
r Admin Tool部署到單獨的J2EE應用程序中。按照下列步驟允許使用了JAXM Provider
的應用程序:
部署JAXM Provider
1、 配置jaxm-provider服務,使用8080端口:打開文件%JWSDP_HOME%/services/jaxm-
provider/WEB-INF/provider.xml (UNIX: $JWSDP_HOME/services/jaxm-provider/WEB-
INF/provider.xml) 。然後將http://127.0.0.1:8081/jaxm-provider/receiver/ebxml
 改變成http://127.0.0.1:8080/jaxm-provider/receiver/ebxml ,同時將http://127
.0.0.1:8081/jaxm-provider/receiver/soaprp 變成http://127.0.0.1:8080/jaxm-pro
vider/receiver/soaprp
2、 到%JWSDP_HOME%/services/jaxm-provider (UNIX: $JWSDP_HOME/service/jaxm-pr
ovider)目錄下,通過執行jar -cvf jaxm-provider.war . 將JAXM Provider打包到一個
WAR文件中。注意該命令末尾有一個點。
3、 將jaxm-provider.jar拷貝到某個位置,如c:/jaxm_services並將它從%JWSDP_HOME
%/services/jaxm-provider刪除。 (UNIX:拷貝 jaxm-provider.war 到某個位置,如
$HOME/jaxm_services 並將它從$JWSDP_HOME/services/jaxm-provider刪除)。該步驟是
必須的,目的是防止從安裝Java WSDP的目錄加載該服務。
4、 將jaxm-provider.jar打包到一個企業級應用程序,上下文是jaxm-provider,並按
照在J2EE SDK容器中部署服務的步驟進行部署。
部署JAXM Provider Admin Tool
1、 配置jaxm-provideradmin服務,使用8080端口:打開文件%JWSDP_HOME%/services/
jaxm-provideradmin/WEB-INF/provider.xml (UNIX: $JWSDP_HOME/services/jaxm-pro
videradmin/WEB-INF/provider.xml) ,然後將http://127.0.0.1:8081/jaxm-provider
/receiver/ebxml 改成http://127.0.0.1:8080/jaxm-provider/receiver/ebxml ,同時
http://127.0.0.1:8081/jaxm-provider/receiver/soaprp 改成http://127.0.0.1:8
080/jaxm-provider/receiver/soaprp
2、 到%JWSDP_HOME%/services/jaxm-provideradmin (UNIX: $JWSDP_HOME/service/ja
xm-provideradmin)目錄下,通過執行jar -cvf jaxm-provideradmin.war . 將JAXM Pr
ovider打包到一個WAR文件中。注意該命令末尾有一個點。
3、 將jaxm-provideradmin.jar拷貝到某個位置,如c:/jaxm_services,並將它從%JWS
DP_HOME%/services/jaxm-provideradmin刪除。 (UNIX:拷貝 jaxm-provideradmin.wa
r 到某個位置,如 $HOME/jaxm_services 並將它從$JWSDP_HOME/services/jaxm-provi
deradmin刪除)。該步驟是必須的,目的是防止從安裝Java WSDP的目錄加載該服務。
4、 按照前面例子,將jaxm-provideradmin.jar打包到一個新的企業級應用程序,上下
文是jaxm-provideradmin。
5、 增加一個provider角色的用戶j2ee。在deploytool中選擇jaxm-provideradmin應用
程序。在Security頁中,從Role Name列表中選擇provider角色。如果provider角色沒有
顯示,則點擊Edit並定義provider,確保選擇了jaxm-provideradmin存檔。一旦增加了
provider,就可以回到主security菜單。在角色名下選擇provider,並點擊Add在User
對話框中選擇j2ee用戶。
6、 確保JAXM Provider應用程序被部署。點擊Servers,在已部署的應用程序列表中查
看jaxm-provider。
7、 部署JAXM Provider Admin Tool(J2EE上部署服務指南有詳細介紹)。確保web上下
文是jaxm-provideradmin。
運行JAXM Admin Tool
JAXM Provider 和 Admin Tool部署完成後,就可以運行JAXM Admin Tool。
運行JAXM Admin Tool
1、 將瀏覽器鏈接到http://127.0.0.1:8080/jaxm-provideradmin
2、 在提示框中鍵入登錄名和口令,如圖6所示。在該例中,我使用"j2ee"作爲登錄名和
口令。一旦網絡驗證了登錄名和口令,就可以進入JAXM Admin Tool。
圖6:JAXM Admin Tool登錄
3、 配置消息傳輸提供者,如圖7。
圖7:JAXM Admin Tool
運行JAXM 示例
JWSDP下載包裏帶有一組JAXM示例程序,它們在%JWSDP_HOME/webapps 目錄 (UNIX: $JW
SDP_HOME/webapps) 下。例子說明可以使用JAXM API編寫不同的應用程序。本節闡述如
何載J2EE SDK 1.3.x上運行這些例子。
jaxm-simple
這是一個利用本地消息傳輸提供者發送和接受消息的例子。
部署jaxm-simple例子
1、 使用前面介紹的deploytool,打包jaxm-simple.war到一個企業級應用。文件jaxm-
simple.war在%JWSDP_HOME%/webapps (UNIX: $HWSDP_HOME/webapps)目錄下。
2、 設置上下文爲jaxm-simple。
3、 在J2EE上部署該應用程序。
部署完成後,就可以使用與JWSDP一起運行的相同方式運行它。
運行jaxm-simple應用程序
1、 將瀏覽器鏈接到http://127.0.0.1:8080/jaxm-simple
屏幕與圖8類似
2、 點擊鏈接"這裏",應該可以看到與圖9類似的窗口。
你可以在%J2EE_HOME/bin (UNIX: $J2EE_HOME/bin)目錄下看到sent.msg和reply.msg。

圖8:運行jaxm-simple
圖9:jaxm-simple的輸出
jaxmtags
這是一個使用JSP標籤生產和消費SOAP消息的例子。
部署jaxmtags例子
將jaxmtags.war打包到一個企業級應用程序。
設置上下文爲jaxmtags。
在J2EE SDK1.3.x上部署該應用程序。
現在,就可以使用與JWSDP一起運行的相同方式運行這個例子。
運行jaxmtags應用程序
將瀏覽器鏈接到http://127.0.0.1:8080/jaxmtags。 屏幕與圖10類似
點擊三個鏈接中的一個發送消息,可以看到顯示的響應。
圖10:運行jaxmtags
jaxm-remote
這是一個使用JAXM消息傳輸提供者支持基本ebXML發送和接受消息的例子。
部署jaxm-remote服務
將%JWSDP_HOME%/webapps/jaxm-remote.war拷貝到某個位置,如c:/remote。(UNIX: 將
$JWSDP_HOME/webapps/jaxm-remote.war 拷貝到某個位置,如 $HOME/remote)
到目錄c:/remote (UNIX: $HOME/remote)。
解開jaxm-remote.war:jar xvf jaxm-remote.war
刪除WAR文件: c:/remote> del jaxm-remote.war (UNIX: $HOME/remote$ rm jaxm-re
mote.war)。
在文件c:/remote/WEB-INF/classes/client.xml (UNIX: $HOME/remote/WEB-INF/class
es/client.xml)中將http://127.0.0.1:8081/jaxm-provider/sender 改成http://127.
0.0.1:8080/jaxm-provider/sender
打包jaxm-remote.war文件:c:/remote> jar cvf jaxm-remote.war . 注意命令末尾有
一個點。
打包該WAR文件到一個企業級應用程序。
設置上下文爲jaxm-remote。
在J2EE SDK1.3.x上部署該應用程序。
運行jaxm-remote應用程序
將瀏覽器鏈接到http://127.0.0.1:8080/jaxm-remote
jaxm-soaprp
這是一個使用JAXM消息傳輸提供者支持基本SOAP-RP發送和接受消息的例子。
部署jaxm-soaprp服務
將%JWSDP_HOME%/webapps/jaxm-soaprp.war拷貝到某個位置,如c:/soaprp。(UNIX: 將
$JWSDP_HOME/webapps/jaxm-soaprp.war 拷貝到某個位置,如 $HOME/soaprp)
到目錄c:/soaprp (UNIX: $HOME/soaprp)。
解開jaxm-soaprp.war:jar xvf jaxm-soaprp.war
刪除WAR文件: c:/soaprp> del jaxm-soaprp.war (UNIX: $HOME/soaprp$ rm jaxm-so
aprp.war)。
在文件c:/soaprp/WEB-INF/classes/client.xml (UNIX: $HOME/soaprp/WEB-INF/class
es/client.xml)中將http://127.0.0.1:8081/jaxm-provider/sender 改成http://127.
0.0.1:8080/jaxm-provider/sender
打包jaxm-soaprp.war文件:c:/soaprp> jar cvf jaxm-soaprp.war . 注意命令末尾有
一個點。
打包該WAR文件到一個企業級應用程序。
設置上下文爲jaxm-soaprp。
在J2EE SDK1.3.x上部署該應用程序。
運行jaxm-soaprp應用程序
打開瀏覽器窗口。
將瀏覽器鏈接到http://127.0.0.1:8080/jaxm-soaprp
jaxm-translator
這是一個將文本翻譯成不同語言的一個簡單翻譯服務。該翻譯服務與 babelfish.altav
ista.com進行會話,建立HTTP連接並從應答中抽取對輸入字符串的翻譯。文本被翻譯成
德語、意大利語和法語。爲了使該服務可以工作,必須連接到Internet。
部署translation服務
使用deploytool,將jaxm-translator.war打包到一個企業級應用程序。
設置上下文爲jaxm-translator。
在J2EE SDK1.3.x上部署該應用程序。
可以使用與JWSDP一起運行的相同方式運行這個例子。
運行translation服務
確保連接到Internet。
將瀏覽器鏈接到http://127.0.0.1:8080/jaxm-translator。可以得到如圖11類似的屏幕
(在這裏,我鍵入good bye)
鍵入一些要翻譯的文本。
點擊radio按鈕選擇要翻譯的方式。返回:在SOAPBody中或者作爲JAXM消息的附件。
如果使用代理主機,則鍵入代理主機名和代理端口(如果不使用代理,則保持空白)。

點擊Translate執行該服務。輸出如圖12所示。
圖11:運行translation web服務
圖12:translation 服務的輸出
結論
通過按照本文中一步一步的指導,你已經學會了怎樣配置J2EE SDK 1.3.1使得web服務可
以在上面進行部署。你也知道了怎樣部署隨JWSDP附帶的web服務示例應用程序。
現在你有了構建新的web服務的工具和怎樣在J2EE平臺上部署它們的知識。通過實踐可以
很快學會。也可以從更多信息的其他資源列表學到更多東西,包括超過60次關於web服務
的會議的幻燈片,它們是在3月底的JavaOne期間召開的。


設置上下文爲jaxm-translator。
在J2EE SDK1.3.x上部署該應用程序。
可以使用與JWSDP一起運行的相同方式運行這個例子。
運行translation服務
確保連接到Internet。
將瀏覽器鏈接到http://127.0.0.1:8080/jaxm-translator。可以得到如圖11類似的屏幕
(在這裏,我鍵入good bye)
鍵入一些要翻譯的文本。
點擊radio按鈕選擇要翻譯的方式。返回:在SOAPBody中或者作爲JAXM消息的附件。
如果使用代理主機,則鍵入代理主機名和代理端口(如果不使用代理,則保持空白)。

點擊Translate執行該服務。輸出如圖12所示。
圖11:運行translation web服務
圖12:translation 服務的輸出
結論
通過按照本文中一步一步的指導,你已經學會了怎樣配置J2EE SDK 1.3.1使得web服務可
以在上面進行部署。你也知道了怎樣部署隨JWSDP附帶的web服務示例應用程序。
現在你有了構建新的web服務的工具和怎樣在J2EE平臺上部署它們的知識。通過實踐可以
很快學會。也可以從更多信息的其他資源列表學到更多東西,包括超過60次關於web服務
的會議的幻燈片,它們是在3月底的JavaOne期間召開的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章