• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Servlet can't find intialisation paramters

 
Ranch Hand
Posts: 83
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi All,
I'm having some problems with Tomcat 3.2.3.
I am creating a servlet which uses intialisation parameters called from the init() method in a servlet. I have set up a web.xml file as follows:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
<servlet>
<servlet-name>
ShowMsg
</servlet-name>

<servlet-class>
servlets.ShowMessage
</servlet-class>

<init-param>
<param-name>
message
</param-name>
<param-value>
Dragon!
</param-value>
</init-param>

<init-param>
<param-name>
repeats
</param-name>
<param-value>
5
</param-value>
</init-param>
</servlet>
</web-app>
This is in the directory:
%TOMCAT_HOME%/webapps/root/web-inf/
The class that uses the intialisation paramters is in the directory:
%TOMCAT_HOME%/webapps/root/web-inf/classes/servlets.ShowMessage.java
However, the init method in ShowMessage.java always sets message as null and repeats never gets set.
public void init(ServletConfig config) throws ServletException {
super.init(config);
message = config.getInitParameter("message");
if (message == null) {
message = defaultMessage;
}
try {
String repeatString = config.getInitParameter("repeats");
repeats = Integer.parseInt(repeatString);
} catch(NumberFormatException nfe) {

}
}
I suspect the problem is with my file setup in Tomcat, but I can't figure out what. Should there be a web.xml file in every WEB-INF directory? Do I need to edit server.xml? Any suggestions are appreciated.
Richard Scothern
 
Ranch Hand
Posts: 3695
IntelliJ IDE Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Each webapp you deploy should have its own web.xml file. And it should be in the WEB-INF directory of that webapp. This way, each webapp you make can have its own deployment settings.

Your webapp cannot read the web.xml file of a different webapp, so the settings you have under <tomcat-home>/root/WEB-INF will NOT be read by any other webapp.

You shouldn't need to change anything in server.xml as long as you keep with the webapps directory. Anything under webapps has a convenient "auto-loading" supplied by Tomcat.

[This message has been edited by Mike Curwen (edited November 19, 2001).]
 
Richard Scothern
Ranch Hand
Posts: 83
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for your reply. Just�@one more thing,
The webapp under ROOT should use the web.xml also under ROOT, which is where the classes that use web.xml are. Can I use ROOT as a directory for a webapp.
Thanks,
Richard
 
Author
Posts: 245
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
if you want to use ROOT you can go ahead and do so. this sometimes can simplify your life. All your URLs will simply be in localhost:8080/ without a webapp name. Note though, that the root web applicatino does not have su privilidges so you can still not have cross context references within your code.
------------------
Chanoch Wiggers
Architect for Professional Java Mobile Programming
 
reply
    Bookmark Topic Watch Topic
  • New Topic