Hello to all,

I am using Tomcat 7.0.29 (from ZIP got at Tomcat Apache site), Oracle Linux 6.4 
and want to deploy "myapp" to ROOT context using virtualhost. My actual 
settings is according Tomcat documentation

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming
If you want to deploy a WAR file or a directory using a context path that is 
not related to the base file name then one of the following options must be 
used to prevent double-deployment:

a)     Disable autoDeploy and deployOnStartup and define all Contexts in 
server.xml

b)    Locate the WAR and/or directory outside of the Host's appBase and use a 
context.xml file with a docBase attribute to define it.

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

Individual Context elements may be explicitly defined:

A.    In an individual file at /META-INF/context.xml inside the application 
files. Optionally (based on the Host's copyXML attribute) this may be copied to 
$CATALINA_BASE/conf/[enginename]/[hostname]/ and renamed to application's base 
file name plus a ".xml" extension.

B.    In individual files (with a ".xml" extension) in the 
$CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The context path and 
version will be derived from the base name of the file (the file name less the 
.xml extension). This file will always take precedence over any context.xml 
file packaged in the web application's META-INF directory.

C.    Inside a Host element in the main conf/server.xml.

Application "myapp" should be

1.     Deployed with context path=""

2.     Named myapp.war (not ROOT.war)

3.     In unpacked WAR file META-INF/context.xml should not be edited.

4.     Should be unpacked/deployed only once.

To fulfill above tasks, I have

-       Defined virtualhost named "myapphostname" with appbasedir 
$CATALINA_HOME/myapp_dst (dst from destination)

-       Placed myapp.war to folder $CATALINA_HOME/myapp_src (src from source)

-       Created file $CATALINA_HOME/conf/Catalina/myapphost/ROOT.xml with 
context path="" docBase=$CATALINA_HOME/myapp_src/myapp.war

-       As you can see, options b) and B. were chosen.

I expected myapp.war to be unpacked to host appBase, i.e. in 
$CATALINA_HOME/myapp_dst, either to $CATALINA_HOME/myapp_dst/ROOT or 
$CATALINA_HOME/myapp_dst/myapp, but it was not unpacked, however myapp is 
running from WAR.

What should be changed in config files or directory structure to let myapp.war 
to be unpacked?

=== directory structure (only relevant files) ===
$CATALINA_BASE
|-- bin
|-- conf
|   |-- Catalina
|   |   |-- localhost
|   |   `-- myapphost
|   |       `-- ROOT.xml
|   |-- catalina.policy
|   |-- catalina.properties
|   |-- context.xml
|   |-- logging.properties
|   |-- server.xml
|   |-- tomcat-users.xml
|   `-- web.xml
|-- lib
|-- LICENSE
|-- logs
|-- NOTICE
|-- myapp_dst
|   |-- mysecondapp
|   `-- mysecondapp.war
|-- myapp_src
|   `-- myapp.war
|-- RELEASE-NOTES
|-- temp
|-- webapps
`-- work

=== server.xml ===
    <Engine name="Catalina" defaultHost="myapphost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" 
directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

      <Host name="myapphost" appBase="myapp_dst" unpackWARs="true" 
autoDeploy="true">
      </Host>
    </Engine>

=== $CATALINA_HOME/conf/Catalina/okbasehost/ROOT.xml ===
<Context path="" docBase="/opt/programs/tomcat7b/myapp_src/myapp.war" />


I will be happy if you can help me.

With regards


Best Regards.

Leoš Junek, IT Systems Administrator
OKsystem s.r.o.
Na Pankráci 125, 140 21 Praha 4, Czech Republic
tel: +420 236 072 268, fax: +420 236 072 112, mobile: +420 776 679 792
e-mail: ju...@oksystem.cz<mailto:ju...@oksystem.cz>, web: 
www.oksystem.cz<http://www.oksystem.cz>




________________________________

Upozornění společnosti OKsystem s.r.o. s ohledem na zavedené standardy ISO 
9001, ISO 27001 a ISO 14001:
Tato zpráva a všechny připojené soubory jsou dle obchodního zákoníku důvěrné. 
Jestliže nejste zamýšleným adresátem, uvědomte prosím odesilatele a smažte 
zprávu i přiložené soubory.
Opravdu potřebujete vytisknout tento email? Myslete na přírodu.

Disclaimer of OKsystem s.r.o. with respect to implemented standards ISO 9001, 
ISO 27001 and ISO 14001:
This message and all attached files are confidential and legally privileged. If 
you are not the intended recipient, please notify the sender and delete the 
message including all attachments.
Please consider the environment before printing this email.

Reply via email to