In my init procedure I am initializing a hash table, but when I try to access the data
from that hash table in my doPost method, the table value is null. Below is my code
and right now I get the following error.
[02/04/2001 14:05:40:005 MDT] ChildCare/ChildCare.servlets.ChildCare: init
[02/04/2001 14:05:40:015 MDT] javax.servlet.ServletException: Actions is null
at ChildCare.servlets.ChildCare.doPost(ChildCare.java:64)
at ChildCare.servlets.ChildCare.doGet(ChildCare.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:499)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java)
at org.apache.jserv.JServConnection.run(JServConnection.java)
at java.lang.Thread.run(Thread.java:479)
If I take out the
if (actions == null)
throw new ServletException("Actions is null");
code, I get a null pointer exception on the next line of code.
I am using Apache/JServ. Any help is appreciated, especially advise on how to debug
this problem on my own in the future.
package ChildCare.servlets;
import java.net.*;
import java.sql.*;
import javax.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import ChildCare.MenuItem;
import ChildCare.beans.provider.*;
public class ChildCare extends HttpServlet {
private Hashtable actions;
private LinkedList inquiryMenu;
/**
* Creates the application scope objects used by the Actions
* and JSP pages in this application.
*/
public void init() throws ServletException {
initActions();
}
/**
* Cleans up before stopping servlet
*/
public void destroy() {
}
/**
* Performs the same processing as for a POST request.
*/
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
doPost(request, response);
}
/**
* Locates the Action object corresponding to the requested
* action, or the start Action in case the user is not yet
* authenticated, and dispatch the processing to the selected
* Action object.
*/
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
String nextURL = null;
try {
String actionName = request.getParameter("action");
// Use the login action if the user is not authenticated
if (actionName == null ||
(!isAuthenticated(request) &&
(!"authenticate".equals(actionName) ||
"signout".equals(actionName)))) {
actionName = "start";
}
if (actions == null)
throw new ServletException("Actions is null");
Action action = (Action) actions.get(actionName);
nextURL = action.perform(this, request, response);
}
catch (ActionException e) {}
RequestDispatcher rd = request.getRequestDispatcher(nextURL);
rd.forward(request, response);
}
/**
* Returns true if the session contains the authentication token.
*/
private boolean isAuthenticated(HttpServletRequest request) {
boolean isAuthenticated = false;
HttpSession session = request.getSession(true);
if (session.getAttribute("validUser") != null) {
isAuthenticated = true;
}
return isAuthenticated;
}
/**
* Initializes the set of Action objects used by the
* application. Instead of hardcoding this list, it can
* be based on configuration information, such as
* servlet initialization parameters.
*/
private void initActions() {
actions = new Hashtable();
actions.put("start",
new NullAction("start.jsp?message=" +
URLEncoder.encode("Please sign on first!")));
actions.put("authenticate", new AuthenticateAction("menu.jsp"));
actions.put("help", new NullAction("help.jsp"));
actions.put("menu", new NullAction("menu.jsp"));
actions.put("chg_password", new NullAction("change_password.jsp"));
actions.put("inquiry", new NullAction("inquiry.jsp"));
actions.put("inquiry_list", new NullAction("inquiry_list.jsp"));
actions.put("signout", new SignOutAction("signon.jsp"));
.
.
.
}
/**
* Get Servlet information
* @return java.lang.String
*/
public String getServletInfo() {
return "ChildCare.Core.ChildCare Information";
}
}
Gerry Scheetz
Web Application Development
Global Information Technology Division
TRW - S&ITG
Helena, Montana, USA
[EMAIL PROTECTED]
(406) 594-1878
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html