Exceptions in Web App

Hi i'm practicing with a simple web application that just verifies a username and a password. I got two servlets and I'm using netbeans 5.5 and the bundled Tomcat 5.17. The Web Application works normal with any problems so far...but my problem is why the Tomcat Log shows me some exceptions i still don't understand ...i hope you people can help me out with this.

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;

import java.sql.*;

publicclass Loginextends HttpServlet{

private Statement s;

private ConectionDB a;

publicvoid init()throws ServletException{

ServletContext sc = getServletConfig().getServletContext();

String driver = sc.getInitParameter("driver");

String url = sc.getInitParameter("url");

String user = sc.getInitParameter("username_DB");

String pass = sc.getInitParameter("password_DB");

try{

a =new ConectionDB();

s = a.openDBConnection(driver, url, user, pass);

}

catch (SQLException e){

e.printStackTrace();

}

catch (ClassNotFoundException e){

e.printStackTrace();

}

}

publicvoid doPost(HttpServletRequest request, HttpServletResponse response){

try{

response.setContentType("text/html");

PrintWriter out = response.getWriter();

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

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

ResultSet res = s.executeQuery("select username,password from users where username = " +

"'" + username +"'" +

" and password = " +

"'" + password +"'");

if (res.next()){

out.println("<HTML><BODY>");

out.println("Hello "+ username +". Welcome to our magazines! ");

out.println("

");

out.println("<img src='00.jpg' width='655' height='1000'>");

out.println("

");

}

else{

out.println("Id/Password combination is not valid");

}

out.println("</BODY></HTML>");

}

catch (Exception e){

e.printStackTrace();

}

}

publicvoid destroy(){

try{

s.close();

a.closeConnection();

}catch(SQLException e){

e.printStackTrace();

}

}

}

import java.sql.*;

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServlet;

publicclass ConectionDBextends HttpServlet{

private Connection c;

public Statement openDBConnection(String driver, String url, String user, String pass)

throws SQLException, ClassNotFoundException{

Class.forName(driver);

c = DriverManager.getConnection(url,user,pass);

Statement s = c.createStatement();

return s;

}

publicvoid closeConnection()throws SQLException{

c.close();

}

}

This web-app works without any problems but i can't figure out what why i got those exception...what do they mean?

The Tomcat Log

22/01/2007 04:36:28 PM org.apache.catalina.core.ApplicationContext log

GRAVE: StandardWrapper.Throwable

java.lang.NullPointerException

at ConectionDB.openDBConnection(ConectionDB.java:12)

at Login.init(Login.java:18)

at javax.servlet.GenericServlet.init(GenericServlet.java:211)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:619)

22/01/2007 04:36:28 PM org.apache.catalina.core.StandardWrapperValve invoke

GRAVE: Excepci髇 de reserva de espacio para servlet Login

java.lang.NullPointerException

at ConectionDB.openDBConnection(ConectionDB.java:12)

at Login.init(Login.java:18)

at javax.servlet.GenericServlet.init(GenericServlet.java:211)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:619)

22/01/2007 04:37:11 PM org.apache.catalina.core.ApplicationContext log

GRAVE: StandardWrapper.Throwable

java.lang.NullPointerException

at ConectionDB.openDBConnection(ConectionDB.java:12)

at Login.init(Login.java:20)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:619)

22/01/2007 04:37:11 PM org.apache.catalina.core.StandardWrapperValve invoke

GRAVE: Excepci髇 de reserva de espacio para servlet Login

java.lang.NullPointerException

at ConectionDB.openDBConnection(ConectionDB.java:12)

at Login.init(Login.java:20)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:619)

22/01/2007 04:43:12 PM org.apache.catalina.core.ApplicationContext log

GRAVE: El Servlet Login lanz?excepci髇 unload()

javax.servlet.ServletException: Servlet.destroy() para servlet Login lanz?excepci髇

at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1344)

at org.apache.catalina.core.StandardWrapper.stop(StandardWrapper.java:1666)

at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)

at org.apache.catalina.core.StandardContext.removeChild(StandardContext.java:3095)

at org.apache.catalina.startup.ContextConfig.stop(ContextConfig.java:1082)

at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:276)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4355)

at org.apache.catalina.manager.ManagerServlet.stop(ManagerServlet.java:1226)

at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:370)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:174)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:619)

[14786 byte] By [pompeighuIIa] at [2007-11-26 15:52:45]
# 1

The following are some possible reasons

1. Required driver may be misspelt

2. May be problem with the registered driver or failing to register.

try the following for this case

DriverManager.registerDriver(Class.forName("org.gjt.mm.mysql.Driver").newInstance());

3. put the driver file in the WEB-INF/lib folder.

reflex2java

reflex2javaa at 2007-7-8 22:13:06 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 2

Your problem is

java.lang.NullPointerException

at ConectionDB.openDBConnection(ConectionDB.java:12)

at Login.init(Login.java:18)

It occured in the class ConectionDB, Connection 'c' may be null

so as the previous replier told check the driver name

and also make sure that the username ,password and url are correct

arunmp25a at 2007-7-8 22:13:06 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 3

This is my web.xml, I use Oracle 10g and the driver name, the username and the password are written correctly. If they weren't correct i wouldn't be able to connect to the database but as i told you previously .. I can connect to the database correctly. The problems are those exceptions in the tomcat log.

<?xml version="1.0" encoding="UTF-8"?>

<web-app 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"

version="2.4">

<context-param>

<param-name>driver</param-name>

<param-value>oracle.jdbc.driver.OracleDriver</param-value>

</context-param>

<context-param>

<param-name>url</param-name>

<param-value>jdbc:oracle:thin:@localhost:1521:XE</param-value>

</context-param>

<context-param>

<param-name>username_DB</param-name>

<param-value>prueba</param-value>

</context-param>

<context-param>

<param-name>password_DB</param-name>

<param-value>123456</param-value>

</context-param>

<servlet>

<servlet-name>Login</servlet-name>

<servlet-class>Login</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Login</servlet-name>

<url-pattern>/Login</url-pattern>

</servlet-mapping>

</web-app>

pompeighuIIa at 2007-7-8 22:13:06 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 4

try putting the code in openDBConnection in a try block and find exactly when the exception occurs

public Statement openDBConnection(String driver, String url, String user, String pass)

throws SQLException, ClassNotFoundException{

try{

Class.forName(driver);

c = DriverManager.getConnection(url,user,pass);

Statement s = c.createStatement();

catch(Exception e){

e.printStacktrace();

}

return s;

}

arunmp25a at 2007-7-8 22:13:06 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 5

hi..i did what you said and now i got this from the Tomcat's log:

23/01/2007 08:02:39 AM org.apache.catalina.core.ApplicationContext log

GRAVE: El Servlet Login lanz?excepci髇 unload()

javax.servlet.ServletException: Servlet.destroy() para servlet Login lanz?excepci髇

at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1344)

at org.apache.catalina.core.StandardWrapper.stop(StandardWrapper.java:1666)

at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)

at org.apache.catalina.core.StandardContext.removeChild(StandardContext.java:3095)

at org.apache.catalina.startup.ContextConfig.stop(ContextConfig.java:1082)

at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:276)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4355)

at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)

at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1164)

at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1135)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1054)

at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1066)

at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:447)

at org.apache.catalina.core.StandardService.stop(StandardService.java:512)

at org.apache.catalina.core.StandardServer.stop(StandardServer.java:743)

at org.apache.catalina.startup.Catalina.stop(Catalina.java:601)

at org.apache.catalina.startup.Catalina.start(Catalina.java:576)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

pompeighuIIa at 2007-7-8 22:13:06 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 6
unload exception? ....what is?
pompeighuIIa at 2007-7-8 22:13:06 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 7
did you get the exception stack trace in the console?could you find out when ie at which line the exception is thrown?
arunmp25a at 2007-7-8 22:13:06 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...