现在的位置: 首页 > 综合 > 正文

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

2013年02月24日 ⁄ 综合 ⁄ 共 14200字 ⁄ 字号 评论关闭

标  题: 在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期间召开的。

抱歉!评论已关闭.