blob: 3f21d0bd8178005c34d9537891cea23a7d06dc4c [file] [log] [blame]
Title: 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](maven/index.html) 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
mvn tomee:deploy <path>
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