I think you should compile your application with debug information,
that way you can see what line in your application causes it.



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: den 7 november 2003 15:58
To: [EMAIL PROTECTED]
Subject: error-page redirection


Hello everyone,
 I am trying to display an error page if user enters a wrong number. The
number has to be between 1 an d 10. I get following error:
type Exception report


message


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


exception
LuckyException
             at LuckyNumber1Servlet.validate_number(Unknown Source)
             at LuckyNumber1Servlet.doGet(Unknown Source)
             at
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
             at
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

Folks, I tried various ways to fix this issue. spent many hours searching
thru books and internet, but could not find a way out.
Can someone please point out the bug here?
Thanks
Raju Lokhande
****************************************************************************
*****************************
Here is my servlet code:
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 * This is a simple example of an HTTP Servlet.  It responds to the GET
 * method of the HTTP protocol.
 */
public class LuckyNumber1Servlet extends HttpServlet
      {

            private int inp_int;
      public void init() throws ServletException {
                  ServletContext servletContext = getServletContext();
                  servletContext.setAttribute("ServletTotal", new
Integer(0));

      } // end of init


      public void validate_number(String in_str) throws LuckyException {

            inp_int = Integer.parseInt( in_str );

            if ( inp_int < 1 || inp_int > 10 )
                        throw new LuckyException();

      }
    public void doGet (HttpServletRequest request,
                       HttpServletResponse response)
                        throws ServletException, IOException {

      response.setContentType("text/html");
      response.setBufferSize(8192);
      PrintWriter out = response.getWriter();

      // then write the data of the response
      out.println("<html>" +
                  "<head><title>Hello</title></head>");

   // then write the data of the response
      out.println("<body  bgcolor=\"#ffffff\">" +
         "<img src=\"duke.waving.gif\">" +
         "<h2>My lucky number is 7. What's yours?</h2>" +
         "<form method=\"get\">" +
         "<input type=\"text\" name=\"lnumber\" size=\"25\">" +
         "<p></p>" +
         "<input type=\"submit\" value=\"Submit\">" +
         "<input type=\"reset\" value=\"Reset\">" +
         "</form>");

            String lnumber = request.getParameter("lnumber");

            Integer SessionTotal;
            int temp_int;

            if ( lnumber != null && lnumber.length() > 0 ) {

              try {
                               validate_number( lnumber );
                  }
                  catch ( LuckyException not_ignored) {
                        response.resetBuffer();
                    throw  new ServletException( not_ignored ) ;
                  }

                  HttpSession session = request.getSession( true );

                  synchronized(session) {
                        SessionTotal =
                                    (Integer) session.getAttribute
( "SessionTotal");

                        if ( SessionTotal == null )
                              SessionTotal = new Integer(0);

                        temp_int =  SessionTotal.intValue() ;
                        int temp_count = temp_int + Integer.parseInt(
lnumber);

                        Integer temp_integer = new Integer( temp_count);

                        session.setAttribute ( "SessionTotal", temp_integer
);
                        }

                        ServletContext servletContext = getServletContext
();

                        Integer ServletTotal =
                              (Integer) servletContext.getAttribute
("ServletTotal");

                        if ( ServletTotal == null )
                              ServletTotal = new Integer( 0 );

                        int temp_int2 =  ServletTotal.intValue() ;
                        int temp_count2 = temp_int2 + Integer.parseInt(
lnumber);
                        Integer temp_integer2 = new Integer( temp_count2 );
                        servletContext.setAttribute("ServletTotal",
temp_integer2);

                        RequestDispatcher dispatcher =
                               getServletContext().getRequestDispatcher
("/lucky2");

                        if (dispatcher != null)
                              dispatcher.include(request, response);

      }
      out.println("</body></html>");
      out.close();
    } // end of doGet().

    public String getServletInfo() {
        return "The LuckyNumber1Servlet servlet types a number.";

    }
 } // end of class LuckyNumber1Servlet

*********************LuckyException.java *******************************
import javax.servlet.*;
public class LuckyException extends ServletException {

    public LuckyException () { }

       /*
    public LuckyException (String msg) {
        super(msg);
    }
       */
}
*********************web.xml file under /appication-context/web/WEB-INF
*******************************
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"; xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
  <display-name>hello1</display-name>
  <servlet>
    <display-name>GreetingServlet</display-name>
    <servlet-name>GreetingServlet</servlet-name>
    <servlet-class>GreetingServlet</servlet-class>
  </servlet>
  <servlet>
    <display-name>ResponseServlet</display-name>
    <servlet-name>ResponseServlet</servlet-name>
    <servlet-class>ResponseServlet</servlet-class>
  </servlet>
  <servlet>
    <display-name>LuckyNumber1Servlet</display-name>
    <servlet-name>LuckyNumber1Servlet</servlet-name>
    <servlet-class>LuckyNumber1Servlet</servlet-class>
  </servlet>
  <servlet>
    <display-name>LuckyNumber2Servlet</display-name>
    <servlet-name>LuckyNumber2Servlet</servlet-name>
    <servlet-class>LuckyNumber2Servlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>GreetingServlet</servlet-name>
    <url-pattern>/greeting</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ResponseServlet</servlet-name>
    <url-pattern>/response</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>LuckyNumber1Servlet</servlet-name>
    <url-pattern>/luckynumber</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>LuckyNumber2Servlet</servlet-name>
    <url-pattern>/lucky2</url-pattern>
  </servlet-mapping>
  <error-page>
  <exception-type>LuckyException</exception-type>
  <location>/errorpage.html</location>
  </error-page>

</web-app>


*********************errorpage.html file under /appication-context/web/
*******************************
<html>
<head>
<title>Data Entry Error</title>
</head>
<body bgcolor="white">
<h2>Please enter a number between 1 and 10. </h2>
</body>
</html>

Reply via email to