使用會話時得到sql.exception的錯誤,我有使用會話的一些問題。在view.jsp中,我獲取用戶名和密碼並將它們傳遞給portlet類。然後,我從獲取數據庫用戶的信息,並保存在會話,並使用「actionResponse.setRenderParameter(」 jspPage「‘/ patientInfo.jsp’)」命令去patientInfo.jsp。我得到的用戶信息,並用下面的代碼打印出來:在Liferay的門戶
<%
ResultSet comments = (ResultSet)portletSession.getAttribute("comments");
ResultSet patientInfo = (ResultSet)portletSession.getAttribute("patientInfo");
patientInfo.next();
%>
<table>
<tr>
<th><strong>Patient Name</strong></th>
<th><strong>Insuline dose</strong></th>
</tr>
<tr>
<td class="info"><%=patientInfo.getString("FirstName") + patientInfo.getString("LastName")%></td>
<td class="info"><%=Integer.toString(patientInfo.getInt("InsulinDose"))%></td>
</tr>
在這個頁面中有是去patientProfile.jsp鏈接:
<portlet:renderURL var="patientProfileURL">
<portlet:param name="jspPage" value="/patientProfile.jsp" />
</portlet:renderURL>
<a href="<%= patientProfileURL%>">Edit Profile</a></p>
一切正常至今。但是,當我打patientProfile.jsp的後退鏈接使用下面的代碼要回去patientInfo.jsp我得到「java.SQL.Excqption:結果集結束之後」錯誤的堆棧跟蹤和「門戶是teprorily不可用」瀏覽器錯誤:
<portlet:renderURL var="patientInfoURL">
<portlet:param name="jspPage" value="/patientInfo.jsp" />
</portlet:renderURL>
<p><a href="<%= patientInfoURL %>">Back</a></p>
這是我如何連接到數據庫並從數據庫檢索數據: java.lang.Class.forName(_jdbcDriver); 連接= java.sql.DriverManager.getConnection(dbURL,數據庫用戶名,DBPASSWORD); Statement statement = connection.createStatement(); resultSet = statement.executeQuery(sql); – Karadous 2012-04-21 16:58:12
不要這樣做。不要長時間保留從JDBC API返回的結果 - 它會限制應用程序的可伸縮性,並且保留可能被釋放的資源鎖定。可能還會冒着超時或 - 如你所見 - 其他問題。 – 2012-04-22 09:48:17