将 Web Service 应用程序部署到 WebSphere Application Server 中时,会为每个应用程序或模块创建一个实例。实例包含 Web 模块或 Enterprise JavaBeans (EJB) 模块的部署信息,包括实现范围、客户机绑定和部署描述符信息。存在三个级别的范围可以设置:应用程序、会话和请求。
开始之前
如果尚未部署企业归档 (EAR) 文件,那么需要将它准备好进行部署或已将它部署到应用程序服务器。
关于此任务
本任务的主要目的是支持 Web Service 端口范围的配置。范围最初是在作为 Web Service 启用 JavaBeans 对象时指定的,在开发流程中,可以用
WebServicesServerBindPort 命令更改此范围。范围属性不适用于使用 Java 消息服务 (JMS) 传输或企业 Bean 的 Web Service。
Web Services for Java 2 Platform Enterprise Edition (J2EE) 指定 Web Service 实现必须是无状态的。因此,要维护规范一致性,范围可仍然为应用程序级别,因为与个别会话级别或请求级别相关的状态未假设在实现中维护。如果您不想遵从规范,并且要访问另一个 JavaBeans 实例(因为您要查找另一个 JavaBeans 中的信息),那么需要更改范围设置。
您为范围配置的设置确定为模块中 Web Service 端口创建服务实现类新实例的频率。应用程序范围导致实现的同一实例用于应用程序上的所有请求。会话范围导致同一实例用于每个会话中的所有请求。请求范围导致新实例用于每个请求。例如,在范围设置为应用程序的情况下,到达服务器的每条消息访问同一个 Java Bean 实例。
要通过 wsadmin 工具更改范围设置:
过程
- 启动脚本编制命令。 要了解更多信息,请参阅“启动 wsadmin 脚本编制客户机”信息。
- 配置 Web Service 端口范围。
要使用现有侦听器端口而不使用或创建新的激活规范,请确定 EJB JAR 版本是否早于 2.1。当指定 -usedefaultbindings 选项以部署应用程序时,系统将自动创建并使用激活规范。如果激活规范存在,那么系统将忽略侦听器端口并改为使用该激活规范。要使用已定义的侦听器端口(而不使用新的激活规范)并通过版本高于或等于 2.1 的 EJB JAR 来部署应用程序,请将 com.ibm.websphere.management.application.dfltbndng.mdb.preferexisting 系统属性(位于相关概要文件的属性目录中的 wsadmin.properties 文件中)设置为 true。
使用 install、installInteractive、edit 或 editInteractive 选项来配置 Web Service 端口范围,如下列语法所示:
$AdminApp install app_name {-usedefaultbindings -deployejb
-WebServicesServerBindPort {{<module_name> <Web_service> <port><scope_setting>}...}
上面的示例表明可以使用一个 WebServicesServerBindPort 命令更改多个端口的范围,其中: - app_name 是应用程序名,例如 WebServicesSample.ear
- module_name 是模块名,例如 AddressBookW2JE.jar
- Web_service 是 Web Service 的名称,例如 AddressBookW2JE
service/WSLoggerService2
- port 是端口的名称,例如 AddressBook
- scope_setting 是范围设置的级别,例如 Session
示例
下面的示例演示实际上写入命令行的应用程序、模块、Web Service、端口和范围:
$AdminApp install WebServicesSamples.ear {-usedefaultbindings -deployejb -deployws
-WebServicesServerBindPort {{AddressBookJ2WB.war AddressBookService AddressBook request}
{AddressBookW2JB.war AddressBookService AddressBook application}}}
下一步做什么
现在,您可以完成任何其他配置、启动或重新启动应用程序以及验证 Web Service 需要的行为。