mvn tomee:deploy <path>
Deploying An Application To TomEE Or OpenEJB
Deploying An Application To TomEE Or OpenEJB
How to deploy my application under TomEE
Description
This aims to be more dynamic in the way you deploy your applications. It is clearly cloud oriented.
Webapp and TomEE deployment
Webapp can be deployed as Tomcat does. Simply put it in webapps folder (or the one you configured) and start TomEE.
TomEE specific deployment
By default TomEE deploys applications (ear, war, jar) contained in $CATALINA_BASE/apps directory at start up.
Deployer
OpenEJB provides a Deployer EJB to do this task. It can be used in your own software looking up remotely the "openejb/DeployerBusinessRemote" EJB. Its interface is "org.apache.openejb.assembler.Deployer". The needed dependency is org.apache.openejb:openejb-core.
Once you got your deployer simply invoke the "deploy" method. Give it the location of your application (can be a file, http, https, maven location depending on the way you configured your container, for more information have a look to TomEE provisionning).
Note: the "undeploy" method exists too and take the same path.
The Deployer is the base of all other solutions
Maven plugin
org.apache.openejb:tomee-maven-plugin can be used to deploy/undeploy your application. Once this plugin is added to your pom you have access to the following configuration:
-
tomeeHttpPort
-
tomeeHost
Then simply run
or
mvn tomee:undeploy <path>
The Deployer through TomEE Webapp
When you start TomEE you can locally access the TomEE webapps (http://host:ip/tomee/).
Then simply go to JNDI tree, select the deployer in the tree, then click on "invoke this ejb", select the deploy (or undeploy) method, fill the path and click on "invoke".
Cloud idea
If you want to cloudify your application, you’ll get a configuration database (or any other storage system ;)).
So it means it is easy for you to get a host and a port…so it is easy to deploy on all your server using the deployer: simply use the maven provisioning then run the deployer on all your nodes and that’s all!
Doing it with camel?
If you are using a route to deploy/undeploy your applications you can have a look to the proposed camel-openejb component:
-
base code: http://svn.apache.org/repos/asf/tomee/sandbox/camel/camel-openejb/
-
proposed to be added to camel: https://issues.apache.org/jira/browse/CAMEL-4935