...
Excerpt |
---|
There are several alternatives available for Deploying and undeploying applications |
...
When you package your application you may include the deployment plan within the package or not. At deployment time, Geronimo will look for the geronimo-web.xml
and web.xml
deployment plans (or geronimo-application.xml
or geronimo-application-client.xml
depending the type of application) in the WEB-INF
directory within your packaged application. If Geronimo can not find those descriptors it will attempt to deploy the application using defaults. If using defaults fails you will have to either provide a deployment plan repackaged in the application or provide an external deployment plan, in the following sections we will discuss further these alternatives.
Via Geronimo Administration Console
Anchor | ||||
---|---|---|---|---|
|
To install a new application via the Geronimo Administration Console the Install New Applications portlet is available by selecting Deploy New on the Console Navigation menu on the left hand side. This portlet also allows you to start automatically the application right after it was deployed.
...
These are the basic steps for installing and uninstalling applications via the Geronimo Administration Console, the following two sections will focus on the command line options.
Deployer tool
The deployer tool will allow you, among other things, install and uninstall applications via a command line. In this section we will focus on just these two tasks for the sample application, the remaining functionality is fully covered in the Deployer tool section.
To deploy the HelloWorld.war sample application using the Deployer tool open a command line window and type the following command from the <geronimo_home>\bin
directory:
deploy --user system --password manager deploy <app_home>\HelloWorld.war
If your application does not include the Geronimo specific deployment plan in the WEB-INF
directory you can still, just like with the Geronimo Administration Console, specify it externally. You just need to add to the previous command the path and file name of the deployment plan.
deploy --user system --password manager deploy <app_home>\HelloWorld.war <deployment_plan_home>\plan.xml
Note that when specifying the deployment plan externally you can use any file name to identify that plan, there is no need to use the geronimo-XYZ.xml
form. In our example we do not need to specify any additional deployment plans as we have the Geronimo specific ones already included in the package.
Hot deployment
Anchor | ||||
---|---|---|---|---|
|
Apache Geronimo has support for Hot Deployment, which means that you can copy an application JAR file into the <geronimo_home>/deploy
directory and the application will be deployed automatically. This will also work for uninstalling or refreshing applications previously deployed via this method. Alternatively, you may also copy the directory (unpacked) for the application module instead of copying a single JAR file.
Note that with this deployment method you have to include the deployment plan in the application package, this method does not support external deployment plans. Also note that applications deployed via the Deployer tool or the Geronimo Administration Console will not be listed in the <geronimo_home>/deploy
directory.
When you copy an application in the deploy
directory, let's say HelloWorld.war, you will see a confirmation message in the console where Geronimo is running stating the application was deployed and the context to access that application.
No Format bgColor #000000 borderStyle solid
11:45:23,500 INFO [DirectoryHotDeployer] Deploying HelloWorld.war
11:45:23,953 INFO [DirectoryHotDeployer] Deployed sample.applications/HelloWorldApp/2.0/war @
http://hcunico:8080/hello
To remove the application, just delete the WAR or EAR file from the deploy
directory. When the application has been removed you should see a confirmation message in the console where Geronimo is running stating the application was undeployed.Once deployed you should see a confirmation message similar to this one:
No Format bgColor #000000 borderStyle solid
D:\geronimo-tomcat6-jee5-2.0-M2\bin>deploy --user system --password manager deploy \HelloWorld_2.0\HelloWorld.war
Using GERONIMO_BASE: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_HOME: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_TMPDIR: D:\geronimo-tomcat6-jee5-2.1\var\temp
Using JRE_HOME: C:\Java\jdk1.5.0_06\\jre
Deployed sample.applications/HelloWorldApp/2.0/war @
http://hcunico:8080/hello
As a difference from the deployment via the Geronimo Administration Console, using the command line tool you receive more information in the confirmation message. For instance you receive the Component Name (also known as moduleId) and you also receive the context root and port where the application was deployed. This is very useful when installing, testing and uninstalling several different applications where it would be hard to remember all these values.
Alternatively, if you have not yet packaged your application you could use the --inPlace option for deploying your application directly from the directory you are actually developing the application. This option is used to deploy this sample application in the [ Quick start - Apache Geronimo for the impatient] section.
In this case you would use this command from the <geronimo_home>\bin
directory:
deploy --user system --password manager deploy --inPlace <app_home>
The Deployer tool can also be used to list all the installed applications. The list-modules command allows you to list all the applications, it also lets you narrow down the query by asking for just the started or stopped applications. The list-modules command without additional parameter will list by default all the started applications.
To uninstall an application you may want to list it first to get the right Component Name (or moduleId). Run the following command from the <geronimo_home>\bin
directory:
deploy --user system --password manager list-modules
You will receive a list similar as the one shown in the following example.
11:46:17,953 INFO [DirectoryHotDeployer] Undeploying HelloWorld.war
11:46:18,281 INFO [DirectoryMonitor] Hot deployer notified that an artifact was removed: sample.applications/HelloWorldApp/2.0/war
11:46:18,281 INFO [DirectoryHotDeployer] Undeployed sample.applications/HelloWorldApp/2.0/war
h1. Via Deployer tool{anchor:Deployertool}
The deployer tool will allow you, among other things, install and uninstall applications via a command line. In this section we will focus on just these two tasks for the sample application, the remaining functionality is fully covered in the [Deployer tool|deploy] section.
To deploy the HelloWorld.war sample application using the Deployer tool open a command line window and type the following command from the {{<geronimo_home>\bin}} directory:
*{{deploy --user system --password manager deploy <app_home>\HelloWorld.war}}*
If your application does not include the Geronimo specific deployment plan in the {{WEB-INF}} directory you can still, just like with the Geronimo Administration Console, specify it externally. You just need to add to the previous command the path and file name of the deployment plan.
*{{deploy --user system --password manager deploy <app_home>\HelloWorld.war <deployment_plan_home>\plan.xml}}*
Note that when specifying the deployment plan externally you can use any file name to identify that plan, there is no need to use the {{geronimo-XYZ.xml}} form. In our example we do not need to specify any additional deployment plans as we have the Geronimo specific ones already included in the package.
Once deployed you should see a confirmation message similar to this one:
{color:white}{noformat:borderStyle=solid| bgColor=#000000}
D:\geronimo-tomcat6-jee5-2.0-M2\bin>deploy --user system --password manager deploy \HelloWorld_2.0\HelloWorld.war
Using GERONIMO_BASE: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_HOME: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_TMPDIR: D:\geronimo-tomcat6-jee5-2.1\var\temp
Using JRE_HOME: C:\Java\jdk1.5.0_06\\jre
Deployed sample.applications/HelloWorldApp/2.0/war @
http://hcunico:8080/hello
As a difference from the deployment via the Geronimo Administration Console, using the command line tool you receive more information in the confirmation message. For instance you receive the Component Name (also known as moduleId) and you also receive the context root and port where the application was deployed. This is very useful when installing, testing and uninstalling several different applications where it would be hard to remember all these values.
Alternatively, if you have not yet packaged your application you could use the --inPlace option for deploying your application directly from the directory you are actually developing the application. This option is used to deploy this sample application in the [ Quick start - Apache Geronimo for the impatient] section.
In this case you would use this command from the <geronimo_home>\bin
directory:
deploy --user system --password manager deploy --inPlace <app_home>
The Deployer tool can also be used to list all the installed applications. The list-modules command allows you to list all the applications, it also lets you narrow down the query by asking for just the started or stopped applications. The list-modules command without additional parameter will list by default all the started applications.
To uninstall an application you may want to list it first to get the right Component Name (or moduleId). Run the following command from the <geronimo_home>\bin
directory:
deploy --user system --password manager list-modules
You will receive a list similar as the one shown in the following example.
Look for the sample.applications/HelloWorldApp No Format bgColor #000000 borderStyle solid
D:\geronimo-tomcat6-jee5-2.0-M2\bin>deploy --user system --password manager list-modules
Using GERONIMO_BASE: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_HOME: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_TMPDIR: D:\geronimo-tomcat6-jee5-2.1\var\temp
Using JRE_HOME: C:\Java\jdk1.5.0_06\\jre
Found 85 modules
+ org.apache.geronimo.configs/activemq-broker
No Format bgColor #000000 borderStyle solid
D:\geronimo-tomcat6-jee5-2.0-M2\bin>deploy --user system --password manager list-modules
Using GERONIMO_BASE: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_HOME: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_TMPDIR: D:\geronimo-tomcat6-jee5-2.1\var\temp
Using JRE_HOME: C:\Java\jdk1.5.0_06\\jre
Found 85 modules
+ org.apache.geronimo.configs/activemq-broker/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/activemq-ra/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/axis/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/axis-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/axis2/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/axis2-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/axis2-ejb/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/axis2-ejb-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/ca-helper-tomcat/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/client-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/clustering/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/connector-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/cxf/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/cxf-ejb/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/dojo-legacy-tomcat/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/dojo-tomcat/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/hot-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/j2ee-corba-yoko/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/j2ee-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/j2ee-server/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jasper/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jasper-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/javamailactivemq-ra/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jaxws-deployeraxis/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jaxws-ejbaxis-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jsr88-rar-configureraxis2/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/mejbaxis2-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/myfacesaxis2-ejb/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/myfacesaxis2-ejb-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openejbca-helper-tomcat/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openejb-corbaclient-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openejb-deployerclustering/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openjpaconnector-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/persistence-jpa10-deployercxf/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/remotecxf-deploy-tomcatejb/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/sharedlibdojo-legacy-tomcat/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/springdojo-tomcat/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/systemhot-databasedeployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/tomcat6j2ee-corba-yoko/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/tomcat6-clustering-builder-wadij2ee-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/j2ee-server/2.1-SNAPSHOT/car
0/war entry, that is the value you will have to use when trying to uninstall the application. + org.apache.geronimo.configs/jasper/2.
To uninstall the application run the following command from the <geronimo_home>\bin
directory using the Component Name you identified while listing the modules.
deploy --user system --password manager undeploy sample.applications/HelloWorldApp/2.0/war
This command will first stop the running application and then uninstall it. You should see a confirmation message similar to this:
No Format bgColor #000000 borderStyle solid
D:\geronimo-tomcat6-jee5-2.0-M2\bin>deploy --user system --password manager undeploy sample.applications/HelloWorldApp/2.0/war
Using GERONIMO_BASE: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_HOME: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_TMPDIR: D:\geronimo-tomcat6-jee5-2.1\var\temp
Using JRE_HOME: C:\Java\jdk1.5.0_06\\jre
Module sample.applications/HelloWorldApp/2.0/war unloaded.
Module sample.applications/HelloWorldApp/2.0/war uninstalled.
Undeployed sample.applications/HelloWorldApp/2.0/war
In this example you have used the same tool with three different commands:
These are not the only options and commands available for this tool, please visit the Tools and commands section for additional details.
Hot deployment
Apache Geronimo has support for Hot Deployment, which means that you can copy an application JAR file into the <geronimo_home>/deploy
directory and the application will be deployed automatically. This will also work for uninstalling or refreshing applications previously deployed via this method. Alternatively, you may also copy the directory (unpacked) for the application module instead of copying a single JAR file.
Note that with this deployment method you have to include the deployment plan in the application package, this method does not support external deployment plans. Also note that applications deployed via the Deployer tool or the Geronimo Administration Console will not be listed in the <geronimo_home>/deploy
directory.
When you copy an application in the deploy
directory, let's say HelloWorld.war, you will see a confirmation message in the console where Geronimo is running stating the application was deployed and the context to access that application.
1-SNAPSHOT/car
+ org.apache.geronimo.configs/jasper-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/javamail/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jaxws-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jaxws-ejb-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/jsr88-rar-configurer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/mejb/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/myfaces/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/myfaces-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openejb/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openejb-corba-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openejb-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/openjpa/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/persistence-jpa10-deployer/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/remote-deploy-tomcat/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/sharedlib/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/spring/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/system-database/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/tomcat6/2.1-SNAPSHOT/car
+ org.apache.geronimo.configs/tomcat6-clustering-builder-wadi/2.1-SNAPSHOT/car
Look for the sample.applications/HelloWorldApp/2.0/war
entry, that is the value you will have to use when trying to uninstall the application.
To uninstall the application run the following command from the <geronimo_home>\bin
directory using the Component Name you identified while listing the modules.
deploy --user system --password manager undeploy sample.applications/HelloWorldApp/2.0/war
This command will first stop the running application and then uninstall it. You should see a confirmation message similar to this:
No Format bgColor #000000 borderStyle solid
D:\geronimo-tomcat6-jee5-2.0-M2\bin>deploy --user system --password manager undeploy
No Format bgColor #000000 borderStyle solid
11:45:23,500 INFO [DirectoryHotDeployer] Deploying HelloWorld.war
11:45:23,953 INFO [DirectoryHotDeployer] Deployed sample.applications/HelloWorldApp/2.0/war @
Using GERONIMO_BASE: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_HOME: http://hcunico:8080/hello
To remove the application, just delete the WAR or EAR file from the deploy
directory. When the application has been removed you should see a confirmation message in the console where Geronimo is running stating the application was undeployed.
No Format bgColor #000000 borderStyle solid
11:46:17,953 INFO [DirectoryHotDeployer] Undeploying HelloWorld.war
11:46:18,281 INFO [DirectoryMonitor] Hot deployer notified that an artifact was removed: D:\geronimo-tomcat6-jee5-2.1
Using GERONIMO_TMPDIR: D:\geronimo-tomcat6-jee5-2.1\var\temp
Using JRE_HOME: C:\Java\jdk1.5.0_06\\jre
Module sample.applications/HelloWorldApp/2.0/war unloaded.
Module sample.applications/HelloWorldApp/2.0/war
11:46:18,281 INFO [DirectoryHotDeployer] uninstalled.
Undeployed sample.applications/HelloWorldApp/2.0/war
In this example you have used the same tool with three different commands:
These are not the only options and commands available for this tool, please visit the Tools and commands section for additional details.
Via Gshell
Anchor | ||||
---|---|---|---|---|
|
You can also deploy or undeploy applications in GShell. See Deploying an Application to a Server Instance in GShell for detailed information about deploying and undeploying GShell commands.
Via GEP
Anchor | ||||
---|---|---|---|---|
|
You can also deploy or undeploy application in Eclipse if you have Geronimo Eclipse Plugin (GEP) installed. applications/HelloWorldApp/2.0/war See Deploying and debugging applications using GEP for details about deploying and undeploying applications with GEP.
Summary
In this section we has discussed three different methods for installing and uninstalling applications, one graphical, one command line and for the hot deployment you can choose command line or the GUI of your choice. You can visit the Tools and commands section as well for further details on the available options and parameters.
You can also deploy or undeploy applications in GShell. See Deploying an Application to a Server Instance in GShell for detailed information about deploying and undeploying GShell commands.
You can also deploy or undeploy application in Eclipse if you have Geronimo Eclipse Plugin (GEP) installed. See Deploying and debugging applications using GEP for details about deploying and undeploying applications with GEPdiscussed five different methods for installing and uninstalling applications, one graphical, one for the hot deployment, one for development and two for command line and you can choose command line or the GUI of your choice. You can visit the Tools and commands section as well for further details on the available options and parameters.
While considering you are using multiple Geronimo servers as a cluster, you can deploy applications to them at one shot by using clustered deployment. For more information of this task, see Farming using Deployment for the details.