endptEnabler command
The endptEnabler command is used to enable a set of web services within an EAR file. The endptEnabler command must run on EAR files containing EJB modules that are enabled for web services.
Each router module provides a web service endpoint for a particular transport. For example, we can add a HTTP router module so that the web service can receive requests over the HTTP transport. Or, we can add a JMS router module so that the web service can receive requests from a JMS queue or topic.
In its interactive mode, the endptEnabler command guides you through the required steps to enable one or more services within an application. The endptEnabler command makes a backup copy of the original EAR file in the event that we need to remove or add services at a later time. If the EAR file contains an enterprise bean JAR file that is enabled for web services, you must run the endptEnabler command before the EAR file is deployed. Otherwise, we do not need to run the command.
endptEnabler usage syntax
Invoke the endptEnabler command from the WAS bin directory. The command syntax is presented in the following example:
endptEnabler [-verbose|-v] [-quiet|-q] [-help|-h|-?] [-properties|-p properties-filename] [-transport|-t default-transports] [-enableHttpRouterSecurity] [-enableClientCertSecurity] [ear-filename] [-classpath|-cp]All parameters are optional and described in the following list:
- -verbose, -v
- This parameter details and displays progress messages as the endptEnabler tool processes the EAR file. This command-line option is mapped to the verbose global property.
- -quiet, -q
- This parameter makes sure that there are no displays of per-module progress messages as the endptEnabler tool processes the EAR file. This command-line option is mapped to the quiet global property.
- -help, -h, -?
- This parameter displays a brief help message that explains the various options.
- -properties, -p <properties-filename>
- This parameter reads properties from the properties-filename properties and controls the behavior of the endptEnabler tool.
- -transport, -t <default-transports>
- This parameter specifies the default list of transports for which router modules are created for each enterprise bean JAR file contained in the EAR file. This command-line option is mapped to the defaultTransports global property. The following are examples of this parameter:
-transport http (the default) -transport jms -t http,jms
- -enableHttpRouterSecurity
- This parameter enables you to add a security policy for all authenticated users to protect the HTTP router module if all the EJB modules are secured in the enterprise bean JAR file. This command-line option is mapped to the http.enableRouterSecurity global property.
- -enableClientCertSecurity
- This parameter enables you to add the following login-config stanza to the web.xml file for certificate authentication, instead of basic-auth or form-login. This command-line option is mapped to the http.enableClientCertSecurity global property.
<login-config> <auth-method>CLIENT-CERT</auth-method> </login-config>Best practice: Use the -enableClientCertSecurity parameter with the -enableHttpRouterSecurity parameter.bprac
- <ear-filename>
- This parameter specifies the name of the EAR file to be processed.
If the ear-filename parameter is not entered on the command line, the interactive mode is used. In the interactive mode, you are prompted for the EAR file name, the router module names and other important values as the processing occurs. The following dialog is an example of the endptEnabler interactive mode.
In this dialog, the user input is in fixed width font and the endptEnabler output is in bold.
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 the 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: Add 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.If the ear-filename parameter is entered on the command-line, the non-interactive mode is used. In the non-interactive mode, the router module names and other important values are determined from the user-specified properties or default values.
- -classpath, -cp
- This parameter enables you to specify separate JAR files in the class path for the endptEnabler command. Use this parameter if the EJB file references Java types in separate JAR files that do not exist within the EAR file. We can specify multiple values for this parameter. For example:
endptEnabler -classpath C:\MyWork\Utility.jar;D:\SharedFiles\Hello.zip;HelloWorld.jar
When we do not specify this parameter, you might encounter an error that is similar to the following message:
WSWS2021I: Skipping the enterprise bean module module_name because it contains no web services.
endptEnabler properties
With the endptEnabler command we can control its runtime behavior by specifying a set of properties with the -properties command-line option. These properties are organized in one of two ways: global and per-module. Global properties affect the overall behavior of the tool as it processes multiple enterprise bean JAR modules within the EAR file. Per-module properties affect the processing of a particular enterprise bean JAR module.
enabling a set of web services within an EAR
Property name Description Default value verbose Displays detailed progress messages. False quiet Displays only brief progress messages. False http.enableRouterSecurity Enables you to add a security policy for all authenticated users to protect the HTTP router module if all the EJB modules are secured in the enterprise bean JAR file. False http.enableClientCertSecurity Enables you to add the following login-config stanza to the web.xml file for certificate authentication, instead of basic-auth or form-login: <login-config> <auth-method>CLIENT-CERT</auth-method> </login-config>False http.routerModuleNameSuffix Suffix used to construct default HTTP router module names. The .war extension is added by the endptEnabler command. _HTTPRouter jms.routerModuleNameSuffix Suffix used to construct default JMS router module names. The .jar extension is added by the endptEnabler command. _JMSRouter jms.defaultDestinationType Default destination type to use for all JMS router modules added to the EAR file. This type is either queue or topic. queue defaultTransports Default list of transports for which router modules are created. The list can contain the values http and jms. Multiple values are separated by a comma. Examples are: http, jms and http,jms. http The following table describes the per-module properties supported by the endptEnabler command. The ejbJarName variable refers to the name of an enterprise bean JAR module within the EAR file, without the .jar extension.
the endptEnabler command. Use these properties of the endptEnabler command that affect
Property name Description Default value <ejbJarName>.transports
Lists the transports for which router modules are created for a particular enterprise bean JAR file. The list can contain the values http and jms. Multiple values are separated by a comma. Examples are: http, jms and http,jms. http <ejbJarName>.http.skip
Flag which bypasses the addition of an HTTP router module, even if it otherwise is added based on other properties. Valid values are true and false. false
<ejbJarName> .http.routerModuleName
Name of the HTTP router module for a particular enterprise bean JAR file. ejbJarName_HTTPRouter <ejbJarName>.http.contextRoot
Context root associated with the HTTP router module for a particular enterprise bean JAR file. /ejbJarName <ejbJarName>.jms.skip
Flag that bypasses the addition of an JMS router module even if it otherwise is added based on other properties. Valid values are true and false. false <ejbJarName>.jms. routerModuleNameName of the JMS router module for a particular enterprise bean JAR file. ejbJarName_JMSRouter <ejbJarName>.jms. activationSpecJndiNameSpecifies the JNDI name of the activation specification configured for the Message Driven Bean (MDB) within the JMS router module. null <ejbJarName>.jms. listenerInputPortNameName of the listener port to configure for the MDB within the JMS router module. The listener port is configured only if an activationSpecJndiName property is not specified. null <ejbJarName>.jms.destinationType
Specifies the JMS destination type associated with the MDB within the JMS router. Valid values are queue and topic. queue <ejbJarName>.<port_local_name> .http.urlPattern= <url_pattern_name>Specifies the URL pattern for ports. If we have EJB module with the indicated name that has a port with the indicated local name, we can specify the HTTP URL pattern with this property. This property only applies to HTTP router modules. It has no affect on JMS router modules. null
Properties example
Suppose an EAR file contains an enterprise bean JAR file named, StockQuoteEJB.jar containing web services. The following set of properties can be used to control the endptEnabler command runtime behavior as it processes the EAR file:
StockQuoteEJB.transports=http,jms StockQuoteEJB.http.routerModuleName=StockQuoteEJB_HTTP StockQuoteEJB.http.contextRoot=/StockQuote StockQuoteEJB.jms.routerModuleName=StockQuoteEJB_JMS StockQuoteEJB.jms.destinationType=queue
endptEnabler examples
The following commands are examples of how the endptEnabler command can be used:
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
Related tasks
Enable an EAR file for EJB modules containing web services Assembling web services applications