Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

java.lang.NullPointerException

[es] :: Java :: java.lang.NullPointerException

[ Pregleda: 2466 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

the.nick
the.nick

Član broj: 160087
Poruke: 6
91.191.15.*

Sajt: www.infobalkan.com


Profil

icon java.lang.NullPointerException19.10.2007. u 12:30 - pre 201 meseci
Pozdrav svima! Imam problem sa web aplikacijom, pa bih bio zahvalan kada bi mi neko pomogao.
Aplikaciju radim u JDveloper-u 10.1.3.3.0 sa dbms-om Oracle 10g xe.
Logovanje prodje ali kada hocu da redirektuje na stranicu "izvodjacilist.jsp" izbaci mi ovu gresku u browser-u:

Code:
500 Internal Server Error
java.lang.NullPointerException    at _izvodjacilist._jspService(_izvodjacilist.java:273)    [/izvodjacilist.jsp]    at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.3.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)    at java.lang.Thread.run(Thread.java:595)


Ukljuceni fajlovi su:

izvodjacilist.jsp
Code:
<%@ page import="oracle.jdbc.*" %>
<%@ page session="true" buffer="16kb" import="java.sql.*,java.util.*,java.text.*"%>
<%@ page contentType="text/html; charset=UTF-8" %>
<%
response.setDateHeader("Expires", 0); // date in the past
response.addHeader("Cache-Control", "no-store, no-cache, must-revalidate"); // HTTP/1.1 
response.addHeader("Cache-Control", "post-check=0, pre-check=0"); 
response.addHeader("Pragma", "no-cache"); // HTTP/1.0 
%>
<% Locale locale = Locale.getDefault();
response.setLocale(locale);%>
<% session.setMaxInactiveInterval(30*60); %>
<%@ include file="db.jsp" %>

<%
int displayRecs = 20;
int recRange = 10;
%>
<%
String tmpfld = null;
String escapeString = "''";
String dbwhere = "";
String masterdetailwhere = "";
String searchwhere = "";
String a_search = "";
String b_search = "";
String whereClause = "";
int startRec = 0, stopRec = 0, totalRecs = 0, recCount = 0;
%>
<%

// Get search criteria for basic search
String pSearch = request.getParameter("psearch");
String pSearchType = request.getParameter("psearchtype");
if (pSearch != null && pSearch.length() > 0) {
    pSearch = pSearch.replaceAll("'",escapeString);
    if (pSearchType != null && pSearchType.length() > 0) {
        while (pSearch.indexOf("  ") > 0) {
            pSearch = pSearch.replaceAll("  ", " ");
        }
        String [] arpSearch = pSearch.trim().split(" ");
        for (int i = 0; i < arpSearch.length; i++){
            String kw = arpSearch[i].trim();
            b_search = b_search + "(";
            b_search = b_search + "\"Redni_Broj_I\" LIKE '%" + kw + "%' OR ";
            b_search = b_search + "\"Naziv_I\" LIKE '%" + kw + "%' OR ";
            b_search = b_search + "\"ID_T_I\" LIKE '%" + kw + "%' OR ";
            if (b_search.substring(b_search.length()-4,b_search.length()).equals(" OR ")) { b_search = b_search.substring(0,b_search.length()-4);}
            b_search = b_search + ") " + pSearchType + " ";
        }
    }else{
        b_search = b_search + "\"Redni_Broj_I\" LIKE '%" + pSearch + "%' OR ";
        b_search = b_search + "\"Naziv_I\" LIKE '%" + pSearch + "%' OR ";
        b_search = b_search + "\"ID_T_I\" LIKE '%" + pSearch + "%' OR ";
    }
}
if (b_search.length() > 4 && b_search.substring(b_search.length()-4,b_search.length()).equals(" OR ")) {b_search = b_search.substring(0, b_search.length()-4);}
if (b_search.length() > 5 && b_search.substring(b_search.length()-5,b_search.length()).equals(" AND ")) {b_search = b_search.substring(0, b_search.length()-5);}
%>
<%

// Build search criteria
if (a_search != null && a_search.length() > 0) {
    searchwhere = a_search; // Advanced search
}else if (b_search != null && b_search.length() > 0) {
    searchwhere = b_search; // Basic search
}

// Save search criteria
if (searchwhere != null && searchwhere.length() > 0) {
    session.setAttribute("Izvodjaci_searchwhere", searchwhere);
    startRec = 1; // Reset start record counter (new search)
    session.setAttribute("Izvodjaci_REC", new Integer(startRec));
}else{
    if (session.getAttribute("Izvodjaci_searchwhere") != null)
        searchwhere = (String) session.getAttribute("Izvodjaci_searchwhere");
}
%>
<%

// Get clear search cmd
startRec = 0;
if (request.getParameter("cmd") != null && request.getParameter("cmd").length() > 0) {
    String cmd = request.getParameter("cmd");
    if (cmd.toUpperCase().equals("RESET")) {
        searchwhere = ""; // Reset search criteria
        session.setAttribute("Izvodjaci_searchwhere", searchwhere);
    }else if (cmd.toUpperCase().equals("RESETALL")) {
        searchwhere = ""; // Reset search criteria
        session.setAttribute("Izvodjaci_searchwhere", searchwhere);
    }
    startRec = 1; // Reset start record counter (reset command)
    session.setAttribute("Izvodjaci_REC", new Integer(startRec));
}

// Build dbwhere
if (masterdetailwhere != null && masterdetailwhere.length() > 0) {
    dbwhere = dbwhere + "(" + masterdetailwhere + ") AND ";
}
if (searchwhere != null && searchwhere.length() > 0) {
    dbwhere = dbwhere + "(" + searchwhere + ") AND ";
}
if (dbwhere != null && dbwhere.length() > 5) {
    dbwhere = dbwhere.substring(0, dbwhere.length()-5); // Trim rightmost AND
}
%>
<%

// Load Default Order
String DefaultOrder = "";
String DefaultOrderType = "";

// No Default Filter
String DefaultFilter = "";

// Check for an Order parameter
String OrderBy = request.getParameter("order");
if (OrderBy != null && OrderBy.length() > 0) {
    if (session.getAttribute("Izvodjaci_OB") != null &&
        ((String) session.getAttribute("Izvodjaci_OB")).equals(OrderBy)) { // Check if an ASC/DESC toggle is required
        if (((String) session.getAttribute("Izvodjaci_OT")).equals("ASC")) {
            session.setAttribute("Izvodjaci_OT", "DESC");
        }else{
            session.setAttribute("Izvodjaci_OT", "ASC");
        }
    }else{
        session.setAttribute("Izvodjaci_OT", "ASC");
    }
    session.setAttribute("Izvodjaci_OB", OrderBy);
    session.setAttribute("Izvodjaci_REC", new Integer(1));
}else{
    OrderBy = (String) session.getAttribute("Izvodjaci_OB");
    if (OrderBy == null || OrderBy.length() == 0) {
        OrderBy = DefaultOrder;
        session.setAttribute("Izvodjaci_OB", OrderBy);
        session.setAttribute("Izvodjaci_OT", DefaultOrderType);
    }
}

// Open Connection to the database
try{

Statement stmt = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
stmt.executeQuery("ALTER SESSION SET CURRENT_SCHEMA = NIKOLA");
ResultSet rs = null;

// Build SQL
String strsql = "SELECT * FROM \"Izvodjaci\"";
whereClause = "";
if (DefaultFilter.length() > 0) {
    whereClause = whereClause + "(" + DefaultFilter + ") AND ";
}
if (dbwhere.length() > 0) {
    whereClause = whereClause + "(" + dbwhere + ") AND ";
}
if (whereClause.length() > 5 && whereClause.substring(whereClause.length()-5, whereClause.length()).equals(" AND ")) {
    whereClause = whereClause.substring(0, whereClause.length()-5);
}
if (whereClause.length() > 0) {
    strsql = strsql + " WHERE " + whereClause;
}
if (OrderBy != null && OrderBy.length() > 0) {
    strsql = strsql + " ORDER BY \"" + OrderBy + "\" " + (String) session.getAttribute("Izvodjaci_OT");
}

//out.println(strsql);
rs = (ResultSet) stmt.executeQuery(strsql);
rs.last();
totalRecs = rs.getRow();
rs.beforeFirst();
startRec = 0;
int pageno = 0;

// Check for a START parameter
if (request.getParameter("start") != null && Integer.parseInt(request.getParameter("start")) > 0) {
    startRec = Integer.parseInt(request.getParameter("start"));
    session.setAttribute("Izvodjaci_REC", new Integer(startRec));
}else if (request.getParameter("pageno") != null && Integer.parseInt(request.getParameter("pageno")) > 0) {
    pageno = Integer.parseInt(request.getParameter("pageno"));
    if (IsNumeric(request.getParameter("pageno"))) {
        startRec = (pageno-1)*displayRecs+1;
        if (startRec <= 0) {
            startRec = 1;
        }else if (startRec >= ((totalRecs-1)/displayRecs)*displayRecs+1) {
            startRec =  ((totalRecs-1)/displayRecs)*displayRecs+1;
        }
        session.setAttribute("Izvodjaci_REC", new Integer(startRec));
    }else {
        startRec = ((Integer) session.getAttribute("Izvodjaci_REC")).intValue();
        if (startRec <= 0) {
            startRec = 1; // Reset start record counter
            session.setAttribute("Izvodjaci_REC", new Integer(startRec));
        }
    }
}else{
    if (session.getAttribute("Izvodjaci_REC") != null)
        startRec = ((Integer) session.getAttribute("Izvodjaci_REC")).intValue();
    if (startRec==0) {
        startRec = 1; //Reset start record counter
        session.setAttribute("Izvodjaci_REC", new Integer(startRec));
    }
}
%>
<p><span>TABLE: Izvodjaci</span></p>
<form action="Izvodjacilist.jsp">
<table border="0" cellspacing="0" cellpadding="4">
    <tr>
        <td><span>Quick Search (*)</span></td>
        <td><span>
            <input type="text" name="psearch" size="20">
            <input type="Submit" name="Submit" value="GO">
        &nbsp;&nbsp;<a href="Izvodjacilist.jsp?cmd=reset">Show all</a>
        </span></td>
    </tr>
    <tr><td>&nbsp;</td><td><span><input type="radio" name="psearchtype" value="" checked>Exact phrase&nbsp;&nbsp;<input type="radio" name="psearchtype" value="AND">All words&nbsp;&nbsp;<input type="radio" name="psearchtype" value="OR">Any word</span></td></tr>
</table>
</form>
<form method="post">
<table border="0" cellspacing="2" cellpadding="4" bgcolor="#CCCCCC">
    <tr bgcolor="#FF3300">
        <td><span class="jspmaker" style="color: #FFFFFF;">
<a href="Izvodjacilist.jsp?order=<%= java.net.URLEncoder.encode("Redni_Broj_I","UTF-8") %>" style="color: #FFFFFF;">Redni Broj I&nbsp;(*)<% if (OrderBy != null && OrderBy.equals("Redni_Broj_I")) { %><span class="ewTableOrderIndicator"><% if (((String) session.getAttribute("Izvodjaci_OT")).equals("ASC")) {%>5<% }else if (((String) session.getAttribute("Izvodjaci_OT")).equals("DESC")) { %>6<% } %></span><% } %></a>
        </span></td>
        <td><span class="jspmaker" style="color: #FFFFFF;">
<a href="Izvodjacilist.jsp?order=<%= java.net.URLEncoder.encode("Naziv_I","UTF-8") %>" style="color: #FFFFFF;">Naziv I&nbsp;(*)<% if (OrderBy != null && OrderBy.equals("Naziv_I")) { %><span class="ewTableOrderIndicator"><% if (((String) session.getAttribute("Izvodjaci_OT")).equals("ASC")) {%>5<% }else if (((String) session.getAttribute("Izvodjaci_OT")).equals("DESC")) { %>6<% } %></span><% } %></a>
        </span></td>
        <td><span class="jspmaker" style="color: #FFFFFF;">
<a href="Izvodjacilist.jsp?order=<%= java.net.URLEncoder.encode("ID_T_I","UTF-8") %>" style="color: #FFFFFF;">ID T I&nbsp;(*)<% if (OrderBy != null && OrderBy.equals("ID_T_I")) { %><span class="ewTableOrderIndicator"><% if (((String) session.getAttribute("Izvodjaci_OT")).equals("ASC")) {%>5<% }else if (((String) session.getAttribute("Izvodjaci_OT")).equals("DESC")) { %>6<% } %></span><% } %></a>
        </span></td>
</tr>
<%

// Avoid starting record > total records
if (startRec > totalRecs) {
    startRec = totalRecs;
}

// Set the last record to display
stopRec = startRec + displayRecs - 1;

// Move to first record directly for performance reason
recCount = startRec - 1;
if (rs.next()) {
    rs.first();
    rs.relative(startRec - 1);
}
long recActual = 0;
if (startRec == 1)
   rs.beforeFirst();
else
   rs.previous();
while (rs.next() && recCount < stopRec) {
    recCount++;
    if (recCount >= startRec) {
        recActual++;
%>
<%
    String bgcolor = "#FFFFFF"; // Set row color
%>
<%
    if (recCount%2 != 0) { // Display alternate color for rows
        bgcolor = "#F5F5F5";
    }
%>
<%
    String x_Redni_Broj_I = "";
    String x_Naziv_I = "";
    String x_ID_T_I = "";

    // Load Key for record
    String key = "";

    // Redni_Broj_I
    if (rs.getString("Redni_Broj_I") != null){
        x_Redni_Broj_I = rs.getString("Redni_Broj_I");
    }else{
        x_Redni_Broj_I = "";
    }

    // Naziv_I
    if (rs.getString("Naziv_I") != null){
        x_Naziv_I = rs.getString("Naziv_I");
    }else{
        x_Naziv_I = "";
    }

    // ID_T_I
    if (rs.getString("ID_T_I") != null){
        x_ID_T_I = rs.getString("ID_T_I");
    }else{
        x_ID_T_I = "";
    }
%>
    <tr bgcolor="<%= bgcolor %>">
        <td><span><% out.print(x_Redni_Broj_I); %></span>&nbsp;</td>
        <td><span><% out.print(x_Naziv_I); %></span>&nbsp;</td>
        <td><span><% out.print(x_ID_T_I); %></span>&nbsp;</td>
    </tr>
<%

//    }
}
}
%>
</table>
</form>
<%

// Close recordset and connection
rs.close();
rs = null;
stmt.close();
stmt = null;
conn.close();
conn = null;
}catch(SQLException ex){
    out.println(ex.toString());
}
%>
<table border="0" cellspacing="0" cellpadding="10"><tr><td>
<%
boolean rsEof = false;
if (totalRecs > 0) {
    rsEof = (totalRecs < (startRec + displayRecs));
    int PrevStart = startRec - displayRecs;
    if (PrevStart < 1) { PrevStart = 1;}
    int NextStart = startRec + displayRecs;
    if (NextStart > totalRecs) { NextStart = startRec;}
    int LastStart = ((totalRecs-1)/displayRecs)*displayRecs+1;
    %>
<form>
    <table border="0" cellspacing="0" cellpadding="0"><tr><td><span>Page</span>&nbsp;</td>
<!--first page button-->
    <% if (startRec==1) { %>
    <td><img src="images/firstdisab.gif" alt="First" width="20" height="15" border="0"></td>
    <% }else{ %>
    <td><a href="Izvodjacilist.jsp?start=1"><img src="images/first.gif" alt="First" width="20" height="15" border="0"></a></td>
    <% } %>
<!--previous page button-->
    <% if (PrevStart == startRec) { %>
    <td><img src="images/prevdisab.gif" alt="Previous" width="20" height="15" border="0"></td>
    <% }else{ %>
    <td><a href="Izvodjacilist.jsp?start=<%=PrevStart%>"><img src="images/prev.gif" alt="Previous" width="20" height="15" border="0"></a></td>
    <% } %>
<!--current page number-->
    <td><input type="text" name="pageno" value="<%=(startRec-1)/displayRecs+1%>" size="4"></td>
<!--next page button-->
    <% if (NextStart == startRec) { %>
    <td><img src="images/nextdisab.gif" alt="Next" width="20" height="15" border="0"></td>
    <% }else{ %>
    <td><a href="Izvodjacilist.jsp?start=<%=NextStart%>"><img src="images/next.gif" alt="Next" width="20" height="15" border="0"></a></td>
    <% } %>
<!--last page button-->
    <% if (LastStart == startRec) { %>
    <td><img src="images/lastdisab.gif" alt="Last" width="20" height="15" border="0"></td>
    <% }else{ %>
    <td><a href="Izvodjacilist.jsp?start=<%=LastStart%>"><img src="images/last.gif" alt="Last" width="20" height="15" border="0"></a></td>
    <% } %>
    <td><span>&nbsp;of <%=(totalRecs-1)/displayRecs+1%></span></td>
    </td></tr></table>
</form>
    <% if (startRec > totalRecs) { startRec = totalRecs;}
    stopRec = startRec + displayRecs - 1;
    recCount = totalRecs - 1;
    if (rsEof) { recCount = totalRecs;}
    if (stopRec > recCount) { stopRec = recCount;} %>
    <span>Records <%= startRec %> to <%= stopRec %> of <%= totalRecs %></span>
<% }else{ %>
    <span>No records found</span>
<% } %>
</td></tr></table>


db.jsp
Code:
<%@ page import="java.sql.*"%>
<%

Connection conn = null;
    try {
        // Load the JDBC driver
        String driverName = "oracle.jdbc.driver.OracleDriver";
        Class.forName(driverName);
    
        // Create a connection to the database
        String serverName = "127.0.0.1";
        String portNumber = "1521";
        String sid = "XE";
        String xDb_Conn_Str = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
        String username = "username";
        String password = "password";
        conn = DriverManager.getConnection(xDb_Conn_Str, username, password);
    } catch (ClassNotFoundException e) {
        // Could not find the database driver
    } catch (SQLException e) {
        // Could not connect to the database
    }
    

%>


Samo logovanj izgleda ovako: http://www.elitesecurity.org/t289674-0#1734516
p.s. Greska u postu na postavljenom linku je rijesena, a kod je isti i ispravan.



Hvala unaprijed svima na pomoci!
Pozdrav!
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9517
..yu.220.247.194.in-addr.arpa.



+10256 Profil

icon Re: java.lang.NullPointerException19.10.2007. u 12:47 - pre 201 meseci
Izgleda da je problem negde u kodu.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

the.nick
the.nick

Član broj: 160087
Poruke: 6
91.191.15.*

Sajt: www.infobalkan.com


Profil

icon Re: java.lang.NullPointerException19.10.2007. u 14:56 - pre 201 meseci
Da, to i ja pretpostavljam ali nikako da otkrijem gdje je ta greska. Sve mi se cini o.k. i JDeveloper ne pokazuje na konkretnu gresku ali ipak ne radi, pa bi molio ako mozete malo detaljnije da pogledate postovani kod i predlozite, eventualno, drugi nacin na koji bi se ovo moglo rijesiti. Unaprijed hvala!
 
Odgovor na temu

zmau
Dragan Jovanović
programer
Šabac

Član broj: 80834
Poruke: 290
195.46.55.*



+80 Profil

icon Re: java.lang.NullPointerException19.10.2007. u 14:58 - pre 201 meseci
Lepo dobijaš poruku : java.lang.NullPointerException at _izvodjacilist._jspService(_izvodjacilist.java:273)

Nema tu neke velike mudrosti, lupi brejkpoint na tu liniju 273 i pusti program da se izvršava dotle. Vidi koje su vrednosti promenljivih kojima program pristupa na toj liniji. Neka od njih je null, i to bi morao relativno lako da vidiš iz debagera. Kako se inače snalaziš sa debagovanjem ?
it works on my machine
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.antegra.com.



+13 Profil

icon Re: java.lang.NullPointerException19.10.2007. u 15:14 - pre 201 meseci
Citat:
Java Beograd: Izgleda da je problem negde u kodu.


I ja mislim. Hm, pokusaj desni klik u JDevu, pa fixNullPointerBugs.
 
Odgovor na temu

the.nick
the.nick

Član broj: 160087
Poruke: 6
91.191.15.*

Sajt: www.infobalkan.com


Profil

icon Re: java.lang.NullPointerException19.10.2007. u 15:29 - pre 201 meseci
Uradio sam sa brakepoint-om, pa mi je izbacilo gresku: "Error: oracle.jdbc not found ".

[Ovu poruku je menjao the.nick dana 19.10.2007. u 16:41 GMT+1]
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.chello.nl.



Profil

icon Re: java.lang.NullPointerException21.10.2007. u 16:48 - pre 201 meseci
Citat:
"Error: oracle.jdbc not found "


Ovo najverovatnije znaci da nemas source code za oracle jdbc driver ili da on nije dostupan JDeveloper-u. Ako pretpostavimo da bug nije u njemu, onda ti taj kod i ne treba. Jednostavno vidi koje reference se koriste na liniji: _izvodjacilist.java:273. Jedna od njih je null. Ako ne ide sa debuger-om uradi to sa (za svaku referencu koja se koristi na liniji: _izvodjacilist.java:273):
Code:
System.out.println("Referenca r: "+ref.getString()) 

Tako ce ti program puci na nekom ispisu, a ti ces onda tacno znati koja referenca je null. Posle potrazi unazad gde se ona postavlja i sigurno ces naci mesto gde referenca ostane null iako bi trebalo da se inicijalizuje. To moze da se desi iz razno-raznih razloga. O tom potom.

Pozdrav,
Rade
 
Odgovor na temu

[es] :: Java :: java.lang.NullPointerException

[ Pregleda: 2466 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.