...
- Use a classloader's getResource to get an url to the properties file and load it into the Properties. The properties file must be located within the webapp classpath (i.e. either WEB-INF/classes/... or in a jar.
A challenge is to get the classloader when you are in a static initializer:
No Format |
---|
public class Config { private static java.util.Properties prop = new java.util.Properties(); private static loadProperties() { // get class loader ClassLoader loader = Config.class.getClassLoader(); if(loader==null) loader = ClassLoader.getSystemClassLoader(); // assuming you want to load application.properties located in WEB-INF/classes/conf/ String propFile = "conf/application.properties"; java.net.URL url = loader.getResource(propFile); try{prop.load(url.openStream());}catch(Exception e){System.err.println("Could not load configuration file: " + propFile);} } //.... // add your methods here. prop is filled with the content of conf/application.properties // load the properties when class is accessed static { loadProperties(); } } |
...
Wiki Markup |
---|
The pages and code of your "mywebapp" application currently reside in (CATALINA_BASE)/webapps/mywebapp/. In a standard Tomcat installation, you will notice that under the same directory (CATALINA_BASE)/webapps/, there is a directory called ROOT (the capitals are important, even under Windows). That is the residence of the _current_ Tomcat default application, the one that is called right now when a user calls up "http://myhost.company.com\[:port\]". The trick is to put your application in it'sits place. |
First stop Tomcat.
Then before you replace the current default application, it may be a good idea to make a copy of it somewhere else.
Then delete everything under the ROOT directory, and move everything that was previously under the (CATALINA_BASE)/webapps/mywebapp/ directory, toward this (CATALINA_BASE)/webapps/ROOT directory. In other words, what was previously .../mywebapp/WEB-INF should now be .../ROOT/WEB-INF (and not .../ROOT/mywebapp/WEB-INF).
...
One step is left : you also need to have, within your application, a default servlet. If you don't want to use the standard one supplied by Tomcat that does nothing but deliver static content, you'll need to supply one of your own. This , you do by means of an appropriate url-mapping in the WEB-INF/web.xml configuration file of your application. Make sure you have something like this in that file:
No Format |
---|
<servlet> <servlet-name>My First Servlet</servlet-name> <servlet-class>my.Servlet.Number1</servlet-class> </servlet> <servlet-mapping> <servlet-name>My First Servlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> |
The above will override the mapping for Tomcat's DefaultServlet in the global conf/web.xml file.
Restart Tomcat and you're done.
Call up "http://myhost.company.com/" and enjoy.
...