You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2013/05/13 01:05:09 UTC

[Bug 51294] Since 7.0.12 do not work option unpackWARs=true for WARs outside appBase

https://issues.apache.org/bugzilla/show_bug.cgi?id=51294

--- Comment #19 from Charlie Hubbard <ch...@gmail.com> ---
The problem is deploying to ROOT context has only a handful of options and
these options are difficult to use.  And this is the most common context to
deploy to.  What we want is the ability to copy our war file up to a directory
without manually manipulating it (ie renaming it, unpacking it, etc), copy a
file to a path to map it to a context without having to modify a file owned by
TC, and let tomcat unpack it for us.

The only options we have right now are:

   1. Rename our war file to ROOT.war and put it in the webapps folder.
   2. Put the war file external to webapps, and put an application context
descriptor file under Catalina/localhost to point to the external war mapping
it to the root context.  
   3. The final option is to modify server.xml file to add the context mapping
and put the external war file in there.

Well the first option sucks and really the only one that works now because we
can't keep our name and version information intact.  No build process out there
outputs ROOT.war so that's a manual step we have to perform to make this work. 
And you have do several steps on the server to make it work.  You can't just
use scp to copy the file up and restart.

The second option sucks because TC will let you set the ROOT context using a
file under Catalina/localhost, but it refuses to extract the war file because
its an external war file.

The third option sucks because you can't automate easily, but also suffers from
external war file unpacking problem.  And this is in bold to not do in the TC
docs.

What is left writing lots of specialized deployment code to force us to
manually extract the war files ourselves.  Why not just make the whole process
straight forward?  What are all of these features not uniform and straight
forward?  I don't think the problem is external vs internal unpacking.  It's
the whole freaking process of deploying a war file and mapping that onto a URL
of our choosing without modifying the internals of TC or changing our output.

What would be super straight forward and simple is.  Copy the war file up to a
folder (maybe webapps, any folder, etc), and deploy a config file (like a
context file) that can map the war file to a URL including ROOT path, specify
if a war file should be unpacked or not, redeploy, etc.  Something like this:

<Context url=""
         docBase="/opt/somepath/myspecialapp-1.0.war"
         unpack="true"
         redeploy="true" 
         debug="1" 
         privileged="true"/>

Or relative to webapps

<Context url=""
         docBase="myspecialapp-1.0.war"
         unpack="true"
         debug="1"
         priviledged="true"/>

It just so straight forward it makes me want to cry that TC right now is so
confusing with all of these terrible options we have.  If you make the process
straight forward the code will clean itself up because it's simple.  I think TC
has so many options for deployment that are worthless it made the code complex.
 It's just you took away one of the useful features for bad reasons.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org