javax.servlet.ServletException: javax.servlet.jsp.JspException: null
843836Mar 21 2005 — edited Mar 21 2005have created one file in which i am making the connection with mysql data base with con.mysql.jdbc.Driver.and usking J connector and that i'm doing with custom tag.this is the error which i'm getting in tomcat.
and the tag handler class and TLD file and jsp file is below
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax.servlet.jsp.JspException: null
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl .java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.j ava:778)
org.apache.jsp.DbTry_jsp._jspService(org.apache.jsp.DbTry_jsp:72)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
Try.Connect.<init>(Connect.java:26)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.jasper.runtime.TagHandlerPool.get(TagHandlerPool.java:116)
org.apache.jsp.DbTry_jsp._jspx_meth_db_connect_0(org.apache.jsp.DbTry_jsp:84)
org.apache.jsp.DbTry_jsp._jspService(org.apache.jsp.DbTry_jsp:62)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.4 logs.
------------------------------------------------------------------------------- -
Apache Tomcat/5.5.4
Tag handler class
package Try;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;
import java.sql.*;
public class Connect extends TagSupport {
private String driver = "com.mysql.jdbc.Driver";
private String dbtype = "mysql";
private String host = "localhost";
private String username = "root";
private String password = "203131";
private String database = "compose";
private String scope = "page";
private String id = "";
JspWriter out = pageContext.getOut();
public void setDriver(String str) {
driver = str;
}
public void setDbtype(String str) {
dbtype = str;
}
public void setHost(String str) {
host = str;
}
public void setUsername(String str) {
username = str;
}
public void setPassword(String str) {
password = str;
}
public void setDatabase(String str) {
database = str;
}
public void setScope(String str) {
scope = str;
}
public void setId(String str) {
id = str;
}
public int doStartTag() throws JspException {
try {
Class.forName("com.mysql.jdbc.Driver");
String url= "jdbc:" + dbtype + "://" + host + "/" + database;
Connection connection = DriverManager.getConnection(url,username,password);
out.println("right ;;one");
}
catch (SQLException e1) {
System.out.println("Error in HeadingTagv: " + e1);
}
catch (Exception e) {
System.out.println("Error in HeadingTag: " + e);
}
return SKIP_BODY;
}
}
TLD is lib.tld
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>db</short-name>
<display-name>Database Tags</display-name>
<description>
A set of tags for working with SQL database access
</description>
<tag>
<name>connect</name>
<tag-class>Try.Connect</tag-class>
<body-content>empty</body-content>
<description>
</description>
<attribute>
<name>driver</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
</description>
</attribute>
<attribute>
<name>dbtype</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
</description>
</attribute>
<attribute>
<name>host</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Can be given by a run-time expression.
Host name of the computer where database is located.
Default is "localhost".
</description>
</attribute>
<attribute>
<name>username</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Can be given by a run-time expression.
Username for logging onto the database.
Default is "root".
</description>
</attribute>
<attribute>
<name>password</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Can be given by a run-time expression.
Password for logging onto the database.
Default is the empty string.
</description>
</attribute>
<attribute>
<name>database</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Can be given by a run-time expression.
The name of the database that will be used for
the SQL commands. Default is no database specified.
</description>
</attribute>
<attribute>
<name>id</name>
<required>false</required>
<description>
</description>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<description>
</description>
</attribute>
</tag>
</taglib>
------------------------------------------------------------------------------- -------------------------
JSP file is
<%@ taglib uri="/WEB-INF/lib.tld" prefix="db" %>
<html>
<body>
<db:connect username="root" password="203131" database="compose" />
</body>
</html>