Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

init-params in web.xml are not loaded (Tomcat 4)

843840Aug 22 2002 — edited Oct 17 2002
Hello all...

I register a servlet in webapps/<my-servlet>/WEB-INF/web.xml file, and pass 1 <init-param> tag. The file gets parsed (I know because when I made errors tomcat complained during initialization). However, when in the init method of the servlet I try to access this parameter, its not there. In fact, the servlet has NO init params at all.
=================================================
I have the following web.xml file
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<servlet>
<servlet-name>XServlet</servlet-name>
<servlet-class>com.fxcm.xml.xengine.xdas.XServlet</servlet-class>
<init-param>
<param-name>xengine.configFile</param-name>
<param-value>c:/projects/re/das.config/config.xng</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>XServlet</servlet-name>
<url-pattern>/xservlet</url-pattern>
</servlet-mapping>
</web-app>
=======================================================

I have the following servlet
/*
* XServlet.java
*
* Created on May 6, 2002, 1:17 PM
*/

package com.fxcm.xml.xengine.xdas;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;
import java.util.Enumeration;

import com.fxcm.xml.xengine.XEngine;

public class XServlet extends HttpServlet{

/** Initiates new XServlet */
public void init(ServletConfig config)
throws ServletException
{
for (Enumeration e = config.getInitParameterNames(); e.hasMoreElements();){
//This statement never gets printed because the loop never enters here since there are no init parameters
System.out.println(e.nextElement());
}
super.init(config);

String str = config.getInitParameter("xengine.configFile");
System.out.println(str);
XEngine.init(str.trim()); //This line throws NullPointer, because str is null since there are no initParameters.
}


public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{

// res.setContentType( );
System.out.println("Got post request in XServlet");
PrintWriter out = res.getWriter();
out.println(XEngine.process(req.getInputStream()));
out.flush();
out.close();

}
}
================================================================

I get the follwoing error in the browser:

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
at com.fxcm.xml.xengine.xdas.XServlet.init(Unknown Source)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:400)

......


Please help.
Thank you,

Elana
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 14 2002
Added on Aug 22 2002
4 comments
448 views