[ 
https://issues.apache.org/jira/browse/TOMEE-223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13292564#comment-13292564
 ] 

Romain Manni-Bucau commented on TOMEE-223:
------------------------------------------

Using tomcat context is quite complicated since tomcat will manage the context 
and we'll get hook lately. Here some note to make a more generic deployer:

one way to deploy an application is to wait to server startup and to use our 
remote deployer:

Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, 
RemoteInitialContextFactory.class.getName());
props.put(Context.PROVIDER_URL, "http://localhost:8080/tomee/ejb";);
((Deployer)new 
InitialContext(props).lookup("openejb/DeployerBusinessRemote")).deploy("c:\foo\app.ear");

This way should work for jar, war, and ear. Normally it should work too for 
exploded artifacts and for xml files (resources.xml).

Another way to deploy apps is to copy artifacts in webapps/ for war and apps/ 
(doesn't exist by default) for jar/ear.


                
> An archive artifact is not deployed when using deployment descriptor
> --------------------------------------------------------------------
>
>                 Key: TOMEE-223
>                 URL: https://issues.apache.org/jira/browse/TOMEE-223
>             Project: TomEE
>          Issue Type: Bug
>            Reporter: Michael Golubev
>         Attachments: sample-ear-and-war.zip
>
>
> I experience problems with deployment of archive artifacts (WARs and EARs) to 
> TomEE 1.0.0.
> An archive artifact is not deployed (as I expect) when deployment descriptor 
> is placed into <TomEE home>/conf/Catalina/localhost folder. 
> Exactly the same workflow works for exploded artifacts. 
> Exactly the same workflow (for WAR's) works for both archive and exploded 
> artifcats in just-a-Tomcat. 
> I am developing an integration for TomEE and IntelliJ IDEA and can not easily 
> workaround by using different deployment methods.
> WAR case:
> - deployment descriptor:
>  <?xml version="1.0" encoding="UTF-8"?>
>  <Context path="/myWarCtx" docBase="C:\path\to\myWar.war" />
> - error message:
> java.lang.IllegalStateException: ContainerBase.addChild: start:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myWarCtx]]
>        at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:898)
>        at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
>        at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>        at 
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
>        at 
> org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1585)
>        at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:662)
> EAR case:
> - deployment descriptor:
>  <?xml version="1.0" encoding="UTF-8"?>
>  <Context docBase="C:\path\to\myEar.ear" />
> - error message:
> java.lang.IllegalArgumentException: Document base C:\path\to\myEar.ear
> does not exist or is not a readable directory
>        at 
> org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:140)
>        at 
> org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4894)
>        at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5074)
>        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>        at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
>        at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
>        at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>        at 
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
>        at 
> org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1585)
>        at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:662)
> WAR case looks like obvious downgrade from essential Tomcat, since deployment 
> with the sample deployment descriptor on Tomcat is successful.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to