您的位置:首页 > 其它

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

2008-05-23 06:55 162 查看
google_ad_client = "pub-8800625213955058";

/* 336x280, 创建于 07-11-21 */

google_ad_slot = "0989131976";

google_ad_width = 336;

google_ad_height = 280;

//

打包和部署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期间召开的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: