Devo creare un file XML da una pagina JSP, eseguendo delle qeury al DB, fino ad ora ha sempre funzionato, ma eseguivo una sola query,stavolta me ne servono 2, e i 2 resultSet vanno innestati. Ma stavolta nn funziona, questo è il codice:
e questa l'intera pagina di errore:codice:<%@ page contentType="text/xml" pageEncoding="windows-1252"%> <%@ page language="java" import="java.sql.*"%> <% Connection dbconn = null; Class.forName("com.mysql.jdbc.Driver"); dbconn = DriverManager.getConnection("", "" ""); Statement stmt = dbconn.createStatement(); String query_1; String query_2; query_1 = "SELECT * ....."; query_2 = "SELECT * ......."; ResultSet rs1 = stmt.executeQuery(query_1); ResultSet rs2 = stmt.executeQuery(query_2); %> <xmlRoot> <% while(rs1.next()) { out.println("<figlio>"); while (rs2.next()) { out.println("<nipote ..."); out.println("</nipote>"); } out.println("</figlio>"); } %> </xmlRoot>
Come potete vedere, nel codice nn sono presenti chiusure di ResultSet, quind non capsco:codice:HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: An exception occurred processing JSP page /xml/xml.jsp at line 30 la riga 30 sarebbe quella con while(rs1.next()) Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) root cause javax.servlet.ServletException: java.sql.SQLException: Operation not allowed after ResultSet closed org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779) org.apache.jsp.xml.quest_005fcomp_jsp._jspService(quest_005fcomp_jsp.java:105) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) root cause java.sql.SQLException: Operation not allowed after ResultSet closed com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910) com.mysql.jdbc.ResultSet.checkClosed(ResultSet.java:666) com.mysql.jdbc.ResultSet.next(ResultSet.java:7274) org.apache.jsp.xml.quest_005fcomp_jsp._jspService(quest_005fcomp_jsp.java:84) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs. Apache Tomcat/6.0.14
java.sql.SQLException: Operation not allowed after ResultSet closed
Ovviamente se ignoro la parte while che itera sul secondo ResultSet, tutto funziona.Idee????

Rispondi quotando