[ the.nick @ 19.10.2007. 12:30 ] @
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"> <a href="Izvodjacilist.jsp?cmd=reset">Show all</a> </span></td> </tr> <tr><td> </td><td><span><input type="radio" name="psearchtype" value="" checked>Exact phrase <input type="radio" name="psearchtype" value="AND">All words <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 (*)<% 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 (*)<% 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 (*)<% 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> </td> <td><span><% out.print(x_Naziv_I); %></span> </td> <td><span><% out.print(x_ID_T_I); %></span> </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> </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> 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! |