Avatar billede jademutter Nybegynder
29. marts 2005 - 22:43 Der er 4 kommentarer og
1 løsning

Hvorfor denne NullPointerException?

He Alle

Jeg tror jeg har stiret mig blind på flg. kode. Jeg får en NullPointerException angiveligt i linie 34, men jeg kan overhovedet ikke se hvad der er galt!!

Kan I hjælpe?

Kode:
<%@page import="java.sql.*"%>
<%@page errorPage="error.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Fakse Badminton Club</title>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="#########">
</head>
<body>
<p>Klik på overskriften for at læse hele artiklen</p>
<table border="0">
<tr>
<td width="20px"></td>
<td width="85px"><p><b>Dato</b></p></td>
<td width="175px"><p><b>Overskrift</b></p></td>
<td width="200px"><p><b>Indhold</b></p></td>
</tr>
<%
    String saeson = request.getParameter("saeson");
    String id,dato,overskrift,indhold,bruger,indhold1,query;
    String check="null";
    if (saeson.equalsIgnoreCase(check))
    {
    query = "SELECT * FROM artikler";
    }
    else
    {
    query = "SELECT * FROM artikler WHERE saeson='"+saeson+"'";
    }
   
    try
        {
            Class.forName("org.hsqldb.jdbcDriver");//forbindelse til databasen oprettes
            Connection con= DriverManager.getConnection("jdbc:hsqldb:#############");

            Statement s= con.createStatement();//opretter sætningsobjektet
            ResultSet rs= s.executeQuery(query);

            while(rs.next())
            {
                        id = rs.getString("id");
                        dato = rs.getString("dato");
                        overskrift = rs.getString("overskrift");
                        indhold1 = rs.getString("indhold");
                        bruger = rs.getString("forfatter");
                       
                        if (indhold1.length()>42)
                        {
                        indhold = indhold1.substring(0,42);
                        }
                       
                        else
                        {
                        indhold = indhold1;
                        }
                        out.println("<tr>");
                        out.println("<td><img src=\"ikoner/nyheder.gif\" alt=\"\"></td>");
                        out.println("<td><p>"+dato+"</p></td>");
                        out.println("<td><p><a href=\"vis_artikel.jsp?id="+id+"\">"+ overskrift + "</a></p></td>");
                        out.println("<td><p>"+indhold+"</p></td>");
                        out.println("</tr>");
                        con.close();
            s.close();
                rs.close();
                }

        }
        catch(Exception ex)
        {
            ex.printStackTrace();
                }
        out.close();
       
%>
</table>
</body>
</html>
Avatar billede arne_v Ekspert
29. marts 2005 - 22:46 #1
linie 34 er:

Class.forName("org.hsqldb.jdbcDriver");//forbindelse til databasen oprettes

og den bør ihvertfald ikke kunne give en nul pointer exception.

Men men men - det kan jo være linie 34 i den .java fil som genereres fra .jsp filen !

Bruger du Tomcat ? (så kan jeg fortælle dig hvor du kan finde den genererede fil)
Avatar billede arne_v Ekspert
29. marts 2005 - 22:48 #2
Mit gæt vil være at det er den her:

if (saeson.equalsIgnoreCase(check))

fordi saeson er null og ikke "null"
Avatar billede arne_v Ekspert
29. marts 2005 - 22:49 #3
Hvis der er rigtigt kan du prøve at erstatte

    String check="null";
    if (saeson.equalsIgnoreCase(check))


med

    if (saeson == null)
Avatar billede jademutter Nybegynder
29. marts 2005 - 23:22 #4
yes selvfølgelig, det hjalp, tak..
Avatar billede arne_v Ekspert
29. marts 2005 - 23:31 #5
så ligger jeg et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester