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);
                }
        }


Reply via email to