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 or mvn tomee:undeploy #### 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