Op 05-08-12 23:54, Mark Eggers schreef:
On 8/5/2012 2:09 PM, Konstantin Kolinko wrote:
2012/8/6 Marco de Booij <marco.develo...@debooy.eu>:
Hello,

I have tried to find the answer but I could not find a (to me) clear answer.

I build my applications with Maven and as a result my war file is like
myapp-web-1.2.3.war. The static content is delivered by the Apache Web
Server so I use this server to access the application deployed in Tomcat
7.0.27:
     JkMount /myapp-web-0.1.0-SNAPSHOT    worker1
     JkMount /myapp-web-0.1.0-SNAPSHOT/* worker1
     JkMount /myapp worker1
     JkMount /myapp/* worker1

I want to use the myapp since this will remain the same even if the version
changes.  In the war file I have a context.xml file in the META-INF at
'root' level (not in the one in the classes directory) with the content:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myapp" />

The path attribute is invalid in a context.xml file.

Read the "Context" chapter in the Configuration Reference in Tomcat
7.0 documentation.

I read it but it was not really clear to me. Must be because I am not really familiar with the way that Tomcat is configured. I just switched from Glassfish to Tomee and I just tried to find the way to define in my war file the name that I want the user to use in the URL. Glassfish let you enter this at deployment time and WebLogic has a context-root tag in the weblogic.xml or application.xml file. It is true that the path value is incorrect. Somehow the // was inserted after copy paste and I did not see it :-( same goes for the 2 last JkMount lines. They should be similar to the first 2 :-( I changed it in this mail.

The application works fine if I use
http://localhost/myapp-web-0.1.0-SNAPSHOT but when I use
http://localhost/myapp I only get the welcome page and when I try to get
another page then I get an error message:
javax.naming.NameNotFoundException: Name [app/AppName] is not bound in this
Context. Unable to find [app].

In the manager application of Tomcat I see both names in the application
list.

I was able to use this in Glassfish. There I could define a application name in the console when I deployed the application. Is it also possible with Tomcat or do I need to rename the war file to myapp.war before I deploy the
application?

The recommended way is to rename the war.

Note, I've not tried this but from the documentation it should work.

1. Create another directory at the same level as webapps - call it apps
2. Copy your appname-1.2.3-SNAPSHOT.war there
3. Create an appname.xml file and place it in conf/Catalina/[hostname]

<Context docBase="${catalina.base}/apps/appname-1.2.3-SNAPSHOT.war"/>

(At least I think ${catalina.base} will be interpolated)

It is important to note that the war file (and docBase) CANNOT be inside the enclosing host's appBase (as defined in server.xml). Thus, you cannot point this inside of $CATALINA_BASE/webapps - the default location of appBase.

See the following for more detail:

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

On second thought, just rename the war file.

. . . . just my two cents.
/mde/

Thanks for the explanation. It looks very complicated to me. If someone wants to deploy your application he/she needs to do the same. I think that I will go for the rename of the war file. I will try to use the ##version in the name to keep track of the version number.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to