GShell Commands
GShell is a command-line processing environment that can be used for the execution of commands. It includes support for editing, command history, input/output redirection, and more. A number of Geronimo administrative commands have been implemented using GShell.:
Commands |
Description |
---|---|
Display help information |
|
Print arguments to STDOUT |
|
Load a file or URL to the current shell |
|
Clear the terminal screen |
|
Set a variable |
|
Unset a variable |
|
Exit GShell |
|
Start a server |
|
Stop the server |
|
Wait for the server to start |
|
Start an application client |
|
Connect to a Geronimo server |
|
Save the username and password for this connection |
|
Disconnect from a Geronimo server |
|
Deploy a module |
|
Redeploy a module |
|
Undeploy a module |
|
Distribute a module |
|
Start a module |
|
Restart a module |
|
Stop a module |
|
List modules |
|
List targets |
|
Install plug-ins into the server |
|
Install library |
|
Install a plug-in |
|
Extract a Geronimo server from the current one |
|
Create a new instance |
|
Connect to a remote GShell server |
|
Start a remote GShell server |
|
Monitor cluster heartbeat |
|
Administer cluster |
|
Generate JAX-WS artifacts from class |
|
Generate JAX-WS artifacts from class |
|
Generate JAX-WS artifacts from WSDL |
|
Generate JAX-WS artifacts from WSDL |
Running GShell and Getting Help
A simple launcher script/.bat file is located in the <Geronimo_HOME>/bin
directory, where <Geronimo_HOME> is the server's installation directory.
- On linux/Unix/Solaris, execute <Geronimo_HOME>/bin/gsh.sh
- On Windows, execute <Geronimo_HOME>\bin\gsh.bat
Note: do not launch GShell with the --secure option (supported in Geronimo 2.1.0.1 or later). It is only supported in GShell commands, but not the scripts.
The help (or ?) command alone will display all GShell commands that are available in the current environment. To obtain help information on any specific command, use the --help (-h) option. Here is an example:
deploy/list-modules --help
or
deploy/list-modules -h
You can use the exit or quit command to exit GShell.
GShell Commands
Note: Windows users, use forward slash "/" instead of the traditional back slash "\" when specifying directory paths within GShell commands. Using back slash may cause errors in processing the command.
General Options
Here are common options that apply to most of GShell commands:
Option |
Usage |
Description |
---|---|---|
-u, or --user |
-u <user> |
It is used to provide username. Initially the user name is system. If you don't provide this option, you will be prompted to. |
-w, or --password |
-w <password> |
It is used to provide password. Initially the password is manager.If you don't provide this option, you will be prompted to. |
-s, --hostname, or --server |
-s <server hostname> |
This option can be used to specify the hostname. If no hostname is specified then the hostname defaults to localhost. |
-p, or --port |
-p <port> |
This option can be used to specify a port to contact the host. If not specified, the default port is 1099. |
--secure |
--secure |
Can be used to communicate with JMX server via a secure channel.This option is only available in Geronimo 2.1.0.1 or later. |
Note: For Geronimo 2.1.0.1 or above, you can work with the RMI/JMX --secure option in GShell commands. You may need to check out the topic Configuring secure JMX server before using this option.
Echo or print
The echo (print) command is used to print arguments to STDOUT.
Source
The source command takes an external file (or URL) and reads the content in line by line, executing each line. For example, if you have a file named example.gsh, with its content like this:
echo "Hello"
echo "Testing source now"
echo "Bye"
In GShell, use source command following this syntax:
source ./example.gsh
or
. ./example.gsh
You will get the following results:
Hello Testing source now Bye
Clear
The clear command can be used to clear the screen.
Note: This command is not available on the Windows platform.
Setting and unsetting variables
The set command can be used to set a variable, and follows this syntax:
set <variable1>=string set <variable2>="A string separated by space"
variable1 is a variable containing no space or special character, so there is no need to add the quotation marks. Here is an example:
set username=system set password=manager deploy/connect -u $username -w $password set newstring="two strings" echo $newstring
The unset command is used to cancel your previous setting.
unset <variable>
Starting and stopping a server
The server can be started through GShell using the geronimo/start-server command. This command provides the following options:
geronimo/start-server -A <JAR> -D <name=value> -G <name=value> -H <dir> -J <flag> -P <name> -b -j <dir> -l <file> -m <module> -p <port> -q -t <time> -u <user> -v -w <password> --secure
These commands are described in the following table except the general options:
Option |
Usage |
Description |
---|---|---|
-A, or --javaagent |
-A <JAR> |
Identify the specific Java Agent with a JAR file containing its path. To disable it, set it to 'none'. |
-D, or --property |
-D <name=value> |
Define system properties. |
-G, or --gproperty |
-G <name=value> |
Define org.apache.geronimo properties. This option is probably used if you start two or more Geronimo instances on your server. |
-H, or --home |
-H <dir> |
Provide a specific Geronimo home directory. This option is probably used if you start two or more Geronimo instances on your server. |
-J, or --javaopt |
-J <flag> |
Set a Java Virtual Machine (JVM) flag. |
-P, or --profile |
-P <name> |
Select a configuration profile. |
-b, or --background |
-b |
If provided, the server process will run in the background. |
-j, or --jvm |
-j <dir> |
Use a specific JVM for the server process. |
-l, or --logfile |
-l <file> |
Capture the console output to a log file. |
-m, or --module |
-m <module> |
Start up a specific module. |
-q, or --quiet |
-q |
Suppress warning and informative message. |
-t, or --timeout |
-t <time> |
Identify the timeout in seconds. |
-v, or --verbose |
-v |
Enable verbose output, resulting in more console output than is normally present. |
The server can be stopped using the geronimo/stop-server command. It uses the following syntax:
geronimo/stop-server -u <user> -w <password> -s <server hostname> -p <port> --secure
See general options for information about the options of this command.
Waiting for the server to start
The geronimo/wait-for-server command is used to verify if the server has started in the given time (in seconds). It has the following syntax:
geronimo/wait-for-server -u <user> -w <password> -s <server hostname> -p <port> -t <time> --secure
Option |
Usage |
Description |
---|---|---|
-t, or --timeout |
-t <time> |
Can be used to specify the time (in seconds) to wait while verifying the that the server has started. -1 means the command will wait infinitely |
If the -t option is not provided, the default timeout is 60 seconds. See general options for information about the rest of options.
Starting an application client
Before starting a client, you have to deploy the application to the server. See creating deployment plans for information about deployment plan templates for application clients, and deploying modules for how to deploy your applications to the server.
The geronimo/start-client command has the following syntax:
geronimo/start-client <config-name> <args> -A <JAR> -D <name=value> -G <name=value> -H <dir> -J <flag> -P <name> -b -j <dir> -l <file> -t <time> -v --secure
where config-name is the configurations for your application client, and args are application specific arguments. The geronimo/start-client command can be issued with the following options:
Option |
Usage |
Description |
---|---|---|
-A, or --javaagent |
-A <JAR> |
Identify the specific Java Agent with a JAR file containing its path. To disable it, set it to 'none'. |
-D, or --property |
-D <name=value> |
Define system properties. |
-G, or --gproperty |
-G <name=value> |
Define org.apache.geronimo properties. This option is probably used if you start two or more Geronimo instances on your server. |
-H, or --home |
-H <dir> |
Provide a specific Geronimo home directory. This option is probably used if you start two or more Geronimo instances on your server. |
-J, or --javaopt |
-J <flag> |
Set a Java Virtual Machine (JVM) flag. |
-P, or --profile |
-P <name> |
Select a configuration profile. |
-b, or --background |
-b |
If provided, the server process will run in the background. |
-j, or --jvm |
-j <dir> |
Use a specific JVM for the server process. |
-l, or --logfile |
-l <file> |
Capture the console output to a log file. |
-q, or --quiet |
-q |
Suppress warning and informative message. |
-t, or --timeout |
-t <time> |
Identify the timeout in seconds. |
-v, or --verbose |
-v |
Enable verbose output, resulting in more console output than is normally present. |
Connecting to an already running server
GShell allows you to run a series of commands on a remote server. To do that you first need to connect to the remote server. The deploy/connect command can be used to connect to an instance of Geronimo that is already running.
deploy/connect -u <user> -w <password> -s <server hostname> -p <port> --secure
See general options for information about the options of this command.
The deploy/disconnect command can be used to disconnect from an already connected server. Since only one instance of the server can be connected at a time, no additional options are needed to specify which server to disconnect from. If you are trying to connect to a second server instance, use this command to disconnect first.
Saving the username and password for current connection
Gshell allows you to save your credential after connecting to a running server. Simply specify your username and password with deploy/login, and you will not be bothered with inputting your credential repeatedly. This command behaves in the same way as login command option of deploy.
deploy/login -u <user> -w <password> -s <server hostname> -p <port>
See general options for information about the options of this command.
Deploying modules
The deploy/deploy command can be used to deploy a module to a server that you have previously connected to as mentioned in connecting to an already running server. If no existing connection is available, the deploy/deploy command will first establish a connection and then execute the specific command. Once deployed, a module is identified by its module ID within Geronimo. The deploy/deploy command has the following syntax:
deploy/deploy <module> <deployment plan> -u <user> -w <password> -s <server hostname> -p <port> -t <target1;target2> -i --secure
A module file can be one of the following:
- J2EE Enterprise Application Archive (EAR) file
- J2EE Web Application Archive (WAR) file
- J2EE Enterprise JavaBean Archive (JAR) file
- J2EE Java Resource Archive (RAR) file
If the deployment plan for a WAR file is not in the WEB-INF directory, its location must be specified after the module in the command.
Option |
Usage |
Description |
---|---|---|
-i, or --inPlace |
-i |
Can be used to specify an in-place deployment from the directory you are actually developing the application. |
-t, or --targets |
-t <target1;target2> |
Can be used to specify the repository targets to which the module should be deployed. You can list targets to get a list of targets available on the Geronimo server. |
If the -i option is provided, the path to the application would need to be provided in place of the location of the module. See general options for information about the other options of this command.
Redeploying modules
The deploy/redeploy command is used to deploy a newer version of a module onto a server where the older module is already deployed. It functions in a similar way to deploy/deploy but lacks an in-place deployment option.
The deploy/redeploy command has the following syntax:
deploy/redeploy <module> <deployment plan> <module_id> -u <user> -w <password> -s <server hostname> -p <port> --secure
If you do not specify the module_id, the plan supplied (or plan inside the module) will be used to determine the actual configuration that you wish to redeploy. Redeploying a plan with an existing module ID allows you to modify the configuration of a running module without intermediate undeployment. See general options for information about the options of this command.
Undeploying modules
The deploy/undeploy command is used to properly remove a module from a server. Once undeployed, the module cannot be started again, unless you use the deploy command again. The module id must be provided for the module you wish to undeploy.
deploy/undeploy -u <user> -w <password> -s <server hostname> -p <port> <module_id> --secure
See general options for information about the options of this command.
Distributing modules
The deploy/distribute command works exactly like deploy/deploy except the module is not started once it has been deployed into the server and is not marked to be started each time the server starts. The command can be issued in the same way, with the same options, as deploy/deploy. The -t option can be used to specify the repository targets to which the module should be distributed. You can list targets to get a list of targets available on the Geronimo server. See general options for information about other options of this command.
deploy/distribute <module> <deployment plan> -u <user> -w <password> -s <server hostname> -p <port> -i -t <target1;target2> --secure
Starting modules
The deploy/start command starts a previously deployed module that is not running, and uses this syntax:
deploy/start -u <user> -w <password> -s <server hostname> -p <port> <module_id> --secure
See general options for information about the options of this command.
Stopping modules
The deploy/stop command stops a running module, and uses this syntax:
deploy/stop -u <user> -w <password> -s <server hostname> -p <port> <module_id> --secure
The command can be issued with the same options, as deploy/start.
Restarting modules
The deploy/restart command ommand restart a module that is already running, or a previously stopped module.
deploy/restart -u <user> -w <password> -s <server hostname> -p <port> <module_id> --secure
The command can be issued with the same options, as deploy/start.
Listing modules
The deploy/list-modules command lists available modules on an active server, and uses this syntax:
deploy/list-modules -u <user> -w <password> -s <server hostname> -p <port> filterOptions --secure
where
By default, all started or stopped modules are displayed. Any started modules are shown with a "+" sign next to them. All Web−tier modules that have a externally accessible URL associated with them will also have this URL shown next to the module. Running modules are represented by their module IDs in Geronimo. See general options for information about other options of this command.
Listing targets
The deploy/list-targets command lists available targets on an active server, and uses this syntax:
deploy/list-targets -u <user> -w <password> -s <server hostname> -p <port> --secure
See general options for information about the options of this command.
Listing plug-ins
The deploy/list-plugins command lists available configurations on an active server, and uses this syntax:
deploy/list-plugins -u <user> -w <password> -s <server hostname> -p <port> -r <repository> -rr -rl --secure
The options are explainied in the following table:
Option |
Usage |
Description |
---|---|---|
-rr, or --refresh-repository |
-rr |
Refresh the repository. |
-rl, or --refresh-list |
-rl |
Refresh the plug-in list. |
-r, or --repository |
-r <repository> |
Can be used to provide the repository URL. |
This command lists server plugins suitable for installation on your configured server, and will allow you to select them to be downloaded and installed. See general options for information about other options of this command.
Installing libraries
The deploy/install-library command can be used to install a library, and uses this syntax:
deploy/install-library <libraryFile> -g <groupId> -u <user> -w <password> -s <server hostname> -p <port> --secure
where libraryFile specifies the library file, usually a JAR. If the file name is not in a Maven recognizable format, you have to rename it following this format:
<artifactId>-<version>.<type>
The options are explainied in the following table:
Option |
Usage |
Description |
---|---|---|
-g, or --groupId |
-g <groupId> |
Can be used to specify the group ID of the library. |
See general options for information about other options of this command.
If successfully installed, the library will be found in <Geronimo_HOME>/repository
, where <Geronimo_HOME> is the server's installation directory.
Installing a plug-in
The deploy/install-plugin command can be used to install a plug-in (must be a CAR file) on the active server, and uses this syntax:
deploy/install-plugin <plugin> -u <user> -w <password> -s <server hostname> -p <port> --secure
where plugin specifies the plug-in to be installed. See general options for information about the options of this command.
Assembling
The deploy/assemble command can be used to extract a customer Geronimo server from the current one.
deploy/assemble -a <artifact> -f <format> -g <groupId> -l -p <port> -s <server hostname> -t <path> -u <user> -w <password> -s <server hostname> -p <port> --secure
The options are explainied in the following table:
Option |
Usage |
Description |
---|---|---|
-a, or --artifact |
-a <artifact> |
Can be used to provide the server artifact name. |
-f, or --format |
-f <format> |
Can be used to specify if the assembly is in .zip or tar.gz format. |
-g, or --groupId |
-g <groupId> |
Can be used to specify the group ID of the library. |
-t, or --path |
-t <path> |
Can be used to provide the assembly location, where your specific plug-ins are stored. |
-l, or --list |
-l |
Can be used to refresh the plug-in list. |
See general options for information about other options of this command.
Your successfully assembled server will be found in <Geronimo_HOME>/var/temp
, where <Geronimo_HOME> is the server's installation directory.
Creating a new instance
The deploy/new-instance command can be used to creating a new server instance from the current one, and uses this syntax:
deploy/new-instance <SERVER_NAME> -u <user> -w <password> -s <server hostname> -p <port> --secure
where SERVER_NAME is the name of the new instance. Look into Running Multiple Geronimo Instances for more information about how to initiate the new instance.
Connecting to a remote Gshell
This remote/rsh can be used to execute gshell commands on a remote Gshell server.
remote/rsh tcp://<REMOTEIP>:<PORT> <GShellCommand>
Where REMOTEIP is the IP address on which the remote Gshell server is running, PORT is the listening port on the remote Gshell server and GShellCommand is the command which can be executed in any Gshell environment.
This function is not working very well by now.
Starting a remote Gshell
This command is used to start a remote gshell session for listening on a port to accept requests from foreign address.
remote/rsh-server tcp://<LOCALIP>:<PORT>
where LOCALIP is the IP address of the Gshell server, PORT is the listening port that you can specify any unoccupied port number.
Monitoring cluster heartbeat
Administering cluster
Generating JAX-WS artifacts from class
The jaxws/java2ws command can be used to create JAX-WS artifacts from a Java class, and uses this syntax:
jaxws/java2ws -databinding <jaxb or aegis> -frontend <jaxws or simple> -wsdl -wrapperbean -client -server -ant -wrapperbean -o <output-file> -d <resource-directory> -s <source-directory> -classdir <compile-classes-directoty> -cp <class-path> -soap12 -t <target-namespace> -beans <pathname of the bean definition file> -servicename <service-name> -portname <port-name> -address <address> -createxsdimports -h -v -verbose -quiet <classname>
The jaxws/wsgen command can be used to create JAX-WS artifacts from a Java class, and uses this syntax:
jaxws/wsgen -classpath <path> -cp <path> -d <directory> -extension -help -keep -r <directory> -verbose -version -wsdl[:protocol] -servicename <name> -portname <name>
Generating JAX-WS artifacts from WSDL
The jaxws/wsdl2java command can be used to create java classes from WSDL, and uses this syntax:
jaxws/wsdl2java -fe <front-end-name>* -db <data-binding-name>* -wv <wsdl-version> -p <[wsdl-namespace = ]package-name>* -sn <service-name> -b <bindling-file-name> -catalog <catalog-file-name> -d <output-directory> -compile -classdir <compile-classes-directory> -impl -server -client -all -autoNameResolution -defaultValues<=class-name-for-DefaultValueProvider> -ant -nexclude <schema-namespace [=java=package- name]>* -exsh <<true,false>> -dns <<true,false>> -dex <<true,false>> -validate -keep -wsdllocation <wsdlLocation> -xjc <xjc-arguments> -noAddressBinding -h -v -verbose -quiet <wsdlurl>
The arguments used to manage the code generation process are reviewed in the following table.
Option |
Usage |
Description |
||
---|---|---|---|---|
-help or -h |
-help or -h |
Displays the online help for this utility. |
||
-fe |
-fe <frontend-name> |
Specifies the frontend. Default is JAXWS. Currently supports only JAXWS frontend. |
||
-db |
-db <databinding-name> |
Specifies the databinding. Default is JAXB. Currently supports only JAXB databinding. |
||
-wv |
-wv <wsdl-version> |
Specifies the wsdl version .Default is WSDL1.1. Currently suppports only WSDL1.1 version. |
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="adf12184-e18b-4ba5-be47-6b7457073caa"><ac:plain-text-body><![CDATA[ |
-p |
-p <[wsdl-namespace = ] package-name>* |
Specifies zero, or more, package names to use for the generated code. Optionally specifies the WSDL namespace to package name mapping. |
]]></ac:plain-text-body></ac:structured-macro> |
-sn |
-sn <service-name> |
The WSDL service name to use for the generated code. |
||
-b |
-b <bindling-file-name> |
Specifies zero, or more, JAXWS or JAXB binding files. Use spaces to separate multiple entries. |
||
-catalog |
-catalog <catalog-file-name> |
Specify catalog file to map the imported wsdl/schema. |
||
-d |
-d <output-directory> |
Specifies the directory into which the generated code files are written. |
||
-compile |
-compile |
Compiles generated Java files. |
||
-classdir |
-classdir <compile-classes-directory> |
Specifies the directory into which the compiled class files are written. |
||
-impl |
-impl |
Generates starting point code for an implementation object. |
||
-client |
-client |
Generates starting point code for a client mainline. |
||
-server |
-server |
Generates starting point code for a server mainline. |
||
-all |
-all |
Generates all starting point code: types, service proxy, service interface, server mainline, client mainline, implementation object, and an Ant build.xml file. |
||
-autoNameResolution |
-autoNameResolution |
Automatically resolve naming conflicts without requiring the use of binding customizations. |
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="61642ef1-a885-4170-97e9-845197bd7b00"><ac:plain-text-body><![CDATA[ |
-defaultValues |
-defaultValues=[DefaultValueProvider impl] |
Specifies that default values are generated for the impl and client. You can also provide a custom default value provider. The default provider is RandomValueProvider. |
]]></ac:plain-text-body></ac:structured-macro> |
-ant |
-ant |
Generates the Ant build.xml file. |
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="498b4917-abc2-40eb-90fd-f47957cb54e9"><ac:plain-text-body><![CDATA[ |
-nexclude |
-nexclude <schema-namespace [=java=package-name]>* |
Ignore the specified WSDL schema namespace when generating code. This option may be specified multiple times. Also, optionally specifies the Java package name used by types described in the excluded namespace(s). |
]]></ac:plain-text-body></ac:structured-macro> |
-exsh |
-exsh <<true,false>> |
Enables or disables processing of implicit SOAP headers (i.e. SOAP headers defined in the wsdl:binding but not wsdl:portType section.) Default is false. |
||
-dns |
-dns <<true,false>> |
Enables or disables the loading of the default namespace package name mapping. Default is true and http://www.w3.org/2005/08/addressing=org.apache.cxf.ws.addressing![]() namespace package mapping will be enabled. |
||
-dex |
-dex <<true,false>> |
Enables or disables the loading of the default excludes namespace mapping. Default is true. |
||
-validate |
-validate |
Enables validating the WSDL before generating the code. |
||
-keep |
-keep |
Specifies that the code generator will not overwrite any preexisting files. You will be responsible for resolving any resulting compilation issues. |
||
-wsdlLocation |
-wsdllocation <wsdlLocation> |
Specifies the value of the @WebServiceClient annotation's wsdlLocation property. |
||
-xjc |
-xjc <xjc-arguments> |
Specifies a comma separated list of arguments that are passed directly to the XJC processor when using the JAXB databinding. A list of available XJC plugins can be obtained using -xjc-X. |
||
-noAddressBinding |
-noAddressBinding |
For compatibility with CXF 2.0, this flag directs the code generator to generate the older CXF proprietary WS-Addressing types instead of the JAX-WS 2.1 compliant WS-Addressing types. |
||
-v |
-v |
Displays the version number for the tool. |
||
-verbose |
-verbose |
Displays comments during the code generation process. |
||
-queit |
-quiet |
Suppresses comments during the code generation process. |
||
<wsdlurl> |
<wsdlurl> |
The path and name of the WSDL file to use in generating the code. |
The jaxws/wsimport command can be used to create java classes from WSDL, and uses this syntax:
jaxws/wsimport -b <path> -B <jaxBOption> -catalog <file> -d <directory> -extension -help -httpproxy:<host>:<port> -keep -p <pkg> -quiet -s <directory> -target <version> -verbose -version -wsdllocation <location>