| 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 |
| |