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

<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 打包和部署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期间召开的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值