endptEnabler command
The endptEnabler command enables a set of web services within an EAR file. The endptEnabler command must run on EAR files containing EJB modules enabled for web services.
If the EAR file contains an enterprise bean JAR file enabled for web services, run the endptEnabler command before the EAR file is deployed. Otherwise, we do not need to run the command.
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 if we need to remove or add services at a later time.
In the shell script of endptEnabler.sh, the script ends with an EXIT 0. Do not use this return code to determine the execution result of the script.
endptEnabler usage syntax
Invoke the endptEnabler command from the WebSphere Application Server bin directory.
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...
- -verbose, -v
- Display progress messages as the endptEnabler tool processes the EAR file. Mapped to the verbose global property.
- -quiet, -q
- Do not display per-module progress messages as the endptEnabler tool processes the EAR file. Mapped to the quiet global property.
- -help, -h, -?
- Display a brief help message that explains the various options.
- -properties, -p <properties-filename>
- Read properties from the properties-filename properties.
- -transport, -t <default-transports>
- Default list of transports for which router modules are created for each enterprise bean JAR file contained in the EAR file. Mapped to the defaultTransports global property.
-transport http (the default) -transport jms -t http,jms
- -enableHttpRouterSecurity
- 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. Mapped to the http.enableRouterSecurity global property.
- -enableClientCertSecurity
- Add the following login-config stanza to the web.xml file for certificate authentication, instead of basic-auth or form-login. Mapped to the http.enableClientCertSecurity global property.
<login-config> <auth-method>CLIENT-CERT</auth-method> </login-config>Use the -enableClientCertSecurity parameter with the -enableHttpRouterSecurity parameter.bprac
- <ear-filename>
- 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, we 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 WAS 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 our 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.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
- 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, we 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.
Global properties for the endptEnabler
Property name Description Default value verbose Displays detailed progress messages. False quiet Displays only brief progress messages. False http.enableRouterSecurity Enable adding 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 Enable adding 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 that are 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
Per-module properties for the endptEnabler command
The ejbJarName variable refers to the name of an enterprise bean JAR module within the EAR file, without the .jar extension.
Property name Description Default value <ejbJarName>.transports List 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. routerModuleName Name of the JMS router module for a particular enterprise bean JAR file. ejbJarName_JMSRouter <ejbJarName>.jms. activationSpecJndiName JNDI name of the activation specification configured for the Message Driven Bean (MDB) within the JMS router module. null <ejbJarName>.jms. listenerInputPortName Name 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 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> 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
Enable an EAR file for EJB modules that contain web services Assembling web services applications