初用Google App Engine for Java (org.apache.jasper.JasperExceptio; org.datanucleun)
来源:互联网 发布:什么是5g网络 编辑:程序博客网 时间:2024/06/08 14:39
参考学习指南:http://code.google.com/intl/zh-CN/appengine/
使用jdo时遇到一个,如下代码:
private void listEmployees(HttpServletRequest req) {
PersistenceManager pm = PMF.get().getPersistenceManager();
String query = "select from " + Employee.class.getName() + " order by id ";
try {
List<Employee> list = (List<Employee>) pm.newQuery(query).execute();
list.size();
req.setAttribute("employees", list);
} finally {
pm.close();
}
}
添了红色的一句解决问题了。
本来没写红色的那句跳转到页面是就报
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 40
37: System.out.println("exc");
38: }
39: }
40: if (employees == null || employees.size() == 0) {
41: %>
42: <tr>
43: <td colspan="5" style='text-align: right'>无数据</td>
Caused by: org.datanucleus.exceptions.NucleusUserException:Object Manager has been closed错误。哦,原来是pm.close();,我的确关了,关了的确是不好使用关之前的值,但我也把值读出来放在了req.setAttribute("employees", list);中了啊。先不管我了,我把pm.close();关了果然解决了问题。于是想到了pm.newQuery(query).execute();可能有点问题,这让我联想到了Hibernate的load和get方法的区别,他的值也许不是直接取出来的,是放在缓存里的,在pm.close();之前没使用就失效了,关了之后使用就报错了。所以我在关之前使用下了list.size();使用list.size()没有别的意思,仅仅是使用下为了从缓存中取出来,这样就可以在关了之后继续使用。这样问题解决了。
刚用的还没认真看,也许有别的方法直接取出来,还没看先写下了笔记。我现在有两种解决方法,一种是等会执行pm.close();但这样开支太大,所以用第二种使用下list,即把他从缓存中取出。
附件:
1做了个crud的小应用(访问地址:http://gzhuyangjun.appspot.com/)
2学习资料
- 初用Google App Engine for Java (org.apache.jasper.JasperExceptio; org.datanucleun)
- org.apache.jasper.JasperException
- org.apache.jasper.JasperException
- org.apache.jasper.JasperException:
- org.apache.jasper.JasperException
- org.apache.jasper.JasperException
- org.apache.jasper.JasperException
- org.apache.jasper.JasperException
- org.apache.jasper.JasperException: java.lang.NullPointerException
- org.apache.jasper.JasperException: java.lang.ClassCastException
- org.apache.jasper.JasperException: java.lang.NullPointerException
- org.apache.jasper.JasperException: java.lang.NullPointerException
- org.apache.jasper.JasperException: java.lang.ClassCastException
- org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to compile class for JSP
- org.apache.jasper.JasperException: org.apache.jasper.JasperException: java.lang.ClassNotFoundExcepti
- org.apache.jasper.JasperException: Unable to compile class for JSP
- org.apache.jasper.JasperException: Unable to compile class for JSP
- org.apache.jasper.JasperException: Unable to compile class for JSP:
- Java学习笔记
- 一辈子都应该记住的话
- VBO, PBO与FBO(三)
- 7.6在东软
- 成大事必备9种能力、9种手段、9种心态
- 初用Google App Engine for Java (org.apache.jasper.JasperExceptio; org.datanucleun)
- GetFileName
- vue打包时遇到的问题(Es6)
- 局部内部类访问final局部变量
- Java之String、StringBuffer、StringBulider辨识
- 面试题:如何测试上传和下载?
- HashSet和HashMap
- Android SDK 2.2 开发环境搭建
- ios runtime