endptEnabler 命令
endptEnabler 命令用来启用企业归档 (EAR) 文件中的一组 Web Service。endptEnabler 命令必须在包含 Enterprise JavaBeans (EJB) 模块的 EAR 文件上运行,而这些模块是为 Web Service 启用的。
每个路由器模块都为一个特定传输提供 Web Service 端点。例如,可添加 HTTP 路由器模块,以便 Web Service 可通过 HTTP 传输接收请求。或者,可添加 Java™ 消息服务 (JMS) 路由器模块,以便 Web Service 可以从 JMS 队列或主题接收请求。
endptEnabler 命令在其交互方式下指导您通过必需的步骤以启用应用程序中的一个或多个服务。如果您稍后需要移除或添加服务,endptEnabler 命令制作您原始 EAR 文件的备份副本。如果您的 EAR 文件包含支持 Web Service 的企业 Bean Java 归档 (JAR) 文件,那么您必须在 EAR 文件部署之前运行 endptEnabler 命令。否则,您不需要运行该命令。

endptEnabler 使用语法
endptEnabler
[-verbose|-v]
[-quiet|-q]
[-help|-h|-?]
[-properties|-p properties-filename]
[-transport|-t default-transports]
[-enableHttpRouterSecurity]
[-enableClientCertSecurity]
[ear-filename]
[-classpath|-cp]
- -verbose, -v
- 在 endptEnabler 工具处理 EAR 文件时,此参数详细说明并显示进展消息。此命令行选项映射到 verbose 全局属性。
- -quiet, -q
- 此参数确保在 endptEnabler 工具处理 EAR 文件时不显示每个模块的进展消息。此命令行选项映射到 quiet 全局属性。
- -help, -h, -?
- 此参数显示对各种选项进行说明的简要帮助消息。
- -properties, -p <properties-filename>
- 此参数从 properties-filename 属性读取属性并控制 endptEnabler 工具的行为。
- -transport, -t <default-transports>
- 此参数指定缺省传输列表,对于这些传输,会为 EAR 文件中包含的每个企业 Bean JAR 文件创建路由器模块。此命令行选项映射到 defaultTransports 全局属性。以下是此参数的示例:
-transport http (the default) -transport jms -t http,jms
- -enableHttpRouterSecurity
- 如果企业 Bean JAR 文件中所有 EJB 模块都是安全的,那么此参数使您能够为所有已认证用户添加安全策略以保护 HTTP 路由器模块。此命令行选项映射到 http.enableRouterSecurity 全局属性。
- -enableClientCertSecurity
- 此参数使您可以将以下 login-config 节(而非 basic-auth 或 form-login)添加到用于证书认证的 web.xml 文件。此命令行选项映射到 http.enableClientCertSecurity 全局属性。
<login-config> <auth-method>CLIENT-CERT</auth-method> </login-config>
最佳实践: 将 -enableClientCertSecurity 参数与 -enableHttpRouterSecurity 参数结合使用。bprac
- <ear-filename>
- 此参数指定要处理的 EAR 文件的名称。
如果在命令行上没有输入 ear-filename 参数,那么使用交互方式。在交互方式下,当发生处理时,会提示您输入 EAR 文件名、路由器模块名称和其他重要的值。以下对话是 endptEnabler 交互方式的示例。
在此对话中,用户输入以定宽字体显示,而 endptEnabler 输出以粗体显示。
endptEnabler<enter> WSWS2004I: IBM WebSphere Application Server Release 5 WSWS2005I: Web Services Enterprise Archive Endpoint Enabler Tool. WSWS2007I: (C) COPYRIGHT International Business Machines Corp. 1997, 2003 WSWS2006I: Please enter the name of your EAR file: AddressBook.ear<enter> WSWS2003I: Backing up EAR file to: AddressBook.ear~ WSWS2016I: Loading EAR file: AddressBook.ear WSWS2017I: Found EJB Module: AddressBookEJB.jar WSWS2029I: Enter http router name for EJB Module AddressBookEJB [AddressBookEJB_HTTPRouter.war]:<enter> WSWS2030I: Enter http context root for EJB Module AddressBookEJB [/AddressBookEJB]:<enter> WSWS2024I: Adding http router for EJB Module AddressBookEJB.jar. WSWS2036I: Saving EAR file AddressBook.ear... WSWS2037I: Finished saving the EAR file. WSWS2018I: Finished processing EAR file AddressBook.ear.
如果在命令行上输入了 ear-filename 参数,那么使用非交互方式。在非交互方式下,从用户指定的属性或缺省值确定路由器模块名称和其他重要值。
- -classpath, -cp
- 此参数使您可以在 endptEnabler 命令的类路径中指定单独 JAR 文件。如果 EJB 文件在单独 JAR 文件中引用的 Java 类型不存在于 EAR 文件中,请使用此参数。您可以为此参数指定多个值。例如:
endptEnabler -classpath C:\MyWork\Utility.jar;D:\SharedFiles\Hello.zip;HelloWorld.jar
如果不指定此参数,您可能遇到与以下消息类似的错误:
WSWS2021I: Skipping the enterprise bean module module_name because it contains no web services.
endptEnabler 属性
使用 endptEnabler 命令,您可通过用 -properties 命令行选项指定一组属性来控制它的运行时行为。用这两种方法(全局和每模块)中的一种识别这些属性。当工具处理 EAR 文件中的多个企业 Bean JAR 模块时,全局属性影 响工具的整体行为。每模块属性影响特定企业 Bean JAR 模块的处理。
属性名称 | 描述 | 缺省值 |
---|---|---|
verbose | 显示详细进展消息。 | False |
quiet | 仅显示简要进展消息。 | False |
http.enableRouterSecurity | 如果在企业 Bean JAR 文件中所有 EJB 模块都是安全的,那么此属性使您能够为所有已认证用户添加安全策略以保护 HTTP 路由器模块。 | False |
http.enableClientCertSecurity | 使您可以将以下 login-config 节(而非 basic-auth 或 form-login)添加到用于证书认证的 web.xml 文件:
|
False |
http.routerModuleNameSuffix | 指定用于构造缺省 HTTP 路由器模块名称的后缀。.war 扩展名由 endptEnabler 命令添加。 | _HTTPRouter |
jms.routerModuleNameSuffix | 指定用于构造缺省 JMS 路由器模块名称的后缀。.jar 扩展名由 endptEnabler 命令添加。 | _JMSRouter |
jms.defaultDestinationType | 指定用于添加到 EAR 文件的所有 JMS 路由器模块的缺省目标类型。此类型为 queue 或 topic。 | queue |
defaultTransports | 指定为之创建路由器模块的缺省传输列表。此列表可包含值 http 和 jms。用逗号分隔多个值。示例为:http, jms 和 http,jms。 | http |
下表描述 endptEnabler 命令支持的每模块属性:ejbJarName 变量指 EAR 文件中企业 Bean JAR 模块的名称,不带 .jar 扩展名。
属性名称 | 描述 | 缺省值 |
---|---|---|
|
为特定企业 Bean JAR 文件列出为之创建路由器模块的传输。此列表可包含值 http 和 jms。用逗号分隔多个值。示例为:http, jms 和 http,jms。 | http |
|
指定即使根据其他属性另外添加 HTTP 路由器模块也跳过这一步的标志。有效值为 true 和 false。 | false |
|
为特定企业 Bean JAR 文件指定 HTTP 路由器模块的名称。 | ejbJarName_HTTPRouter |
|
为特定企业 Bean JAR 文件指定与 HTTP 路由器模块关联的上下文根。 | /ejbJarName |
|
指定即使根据其他属性另外添加 JMS 路由器模块也跳过这一步的标志。有效值为 true 和 false。 | false |
|
为特定企业 Bean JAR 文件指定 JMS 路由器模块的名称。 | ejbJarName_JMSRouter |
|
指定针对 JMS 路由器模块中消息驱动的 Bean (MDB) 配置的激活规范的 Java 命名和目录接口 (JNDI) 名称。 | null |
|
指定要针对 JMS 路由器模块中的 MDB 配置的侦听器端口的名称。只有未指定 activationSpecJndiName 属性时才配置侦听器端口。 | null |
|
指定与 JMS 路由器中的 MDB 关联的 JMS 目标类型。有效值为 queue 和 topic。 | queue |
|
指定端口的 URL 模式。如果 EJB 模块的指示名称包含一个带有指示局部名的端口,那么您可以使用此属性来指定 HTTP URL 模式。此属性只适用于 HTTP 路由器模块。它对 JMS 路由器模块不起作用。 | null |
属性示例
StockQuoteEJB.transports=http,jms
StockQuoteEJB.http.routerModuleName=StockQuoteEJB_HTTP
StockQuoteEJB.http.contextRoot=/StockQuote
StockQuoteEJB.jms.routerModuleName=StockQuoteEJB_JMS
StockQuoteEJB.jms.destinationType=queue
endptEnabler 示例
endptEnabler MyApp.ear
endptEnabler -t jms,http MyApp.ear
endptEnabler -v -properties MyApp.props MyApp.ear
endptEnabler -q -t jms MyApp.ear
endptEnabler -v -t http,jms