I wrote a little method to parse out set() metadata out of a mysql database,
it works fine inside of a .jsp but when i call my class it gives me the
following error, how might i get more meaningfull debuging data. i am a
java newbie and come from a perl background so please be verbose if this is
a stupid question:
java.lang.NullPointerException
at /pscms/options.jsp._jspService(/pscms/options.jsp.java:38) (JSP page line
20)
at com.evermind.server.http.EvermindHttpJspPage.service(Compiled Code)
at com.evermind.server.http.HttpApplication.t8(Compiled Code)
at com.evermind.server.http.JSPServlet.service(Compiled Code)
at com.evermind.server.http.di.pz(Compiled Code)
at com.evermind.server.http.di.forward(Compiled Code)
at com.evermind.server.http.dr.p4(Compiled Code)
at com.evermind.server.http.dr.p3(Compiled Code)
at com.evermind.util.f.run(Compiled Code)
///////////////////////////////////////////////Below is the .jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<%@
page
import="java.util.*,java.sql.*,javax.sql.*,javax.naming.*,pscms.HtmlOptionLi
st"
%>
HI
<%
HtmlOptionList hol = new HtmlOptionList("pscms.pscms_users");
Vector foo = new Vector();
foo = hol.getHtmlOptionList("pscms.pscms_users");
out.println(foo.size());
out.println("pick your Group Id" + foo.get(1)+"<br>pick your
Region"+foo.get(1));
%>
</body></html>
////////////////////////////////////and here is the HtmlOptionList.java
//generate option list from db
package pscms;
import java.sql.*;
import javax.sql.*;
import java.util.*;
import javax.naming.*;
public class HtmlOptionList
{
private String table;
private String htmlPrintString = "";
private String htmlPrintS;
private Vector v;
public HtmlOptionList(String table)
{
this.table = table;
}
public Vector getHtmlOptionList(String table)
{
try
{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/mysql");
Connection con = ds.getConnection();
DatabaseMetaData meta = con.getMetaData();
String productName = meta.getDatabaseProductName();
//HtmlOptionList hol = new HtmlOptionList();
//hol.getHtmlOptionList(con,"pscms_users");
//out.println(htmlPrintString);
String htmlPrintS = "";
String htmlPrints = "";
Vector v = new Vector();
Statement show_columns_st = con.createStatement();
String show_columns_q = "show columns from " + table;
ResultSet show_columns_rs =
show_columns_st.executeQuery(show_columns_q);
ResultSetMetaData show_columns_rsmd =
show_columns_rs.getMetaData();
int i = 1;
while (show_columns_rs.next())
{
// print the values for the current row.
String htmlPrintString = new String();
String string = "";
String bla = show_columns_rs.getString(2);
i++;
int c = 0;
int d =0;
StringTokenizer st = new StringTokenizer(bla,"','");
for (c = 0;st.hasMoreTokens();c++){String token =
st.nextToken();}
StringTokenizer st1 = new StringTokenizer(bla,"','");
for (int b = 0;st1.hasMoreTokens();b++)
{
String token = st1.nextToken();
if(b == 0 )
{
if(token.equals("set("))
{
d = 1;
}
}
if(d ==1)
{
if(b == 1)
{
htmlPrintString=new
String("<SELECT id='north_east' name='gid'
title='Group ID'><OPTION selected value='"+token+"'>"+token);
}
if(b==0|| b == (c-1)||b==c||b==c-2)
{
}
else
{
string=new
String(string+"<option>"+token+"</OPTION>");
}
}
}
htmlPrintS=htmlPrintString+string+"</option></select>";
v.add(htmlPrintS);
}
}
catch (SQLException e)
{
System.out.println("Sql Error"+e+"<br><center><h1><a
href='login.html'>Please login again</a></center></h1>");
}
catch (NamingException er)
{
System.out.println("jndi naming error"+ er);
}
return(v);
}
}