这是我的java代码:
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
Gson gson = new Gson();
Session session = null;
Transaction tx = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
List currencies = session.createQuery("from Currency").list();
response.getWriter().write(gson.toJson(currencies));
tx.commit();
} catch (HibernateException e) {
if (tx != null) tx.rollback();
} finally {
session.close();
}
当我在我的计算机上运行此代码时,我没有收到任何错误。但是当我在 OpenShift 云中运行它时,我收到 NullPointerException。 session.close() 行出现异常;
我在 OpenShift 中的盒式磁带是 Tomcat 7 (JBoss EWS 2.0)、MySQL 5.5、phpMyAdmin 4.0。
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property>
<property name="hibernate.connection.url"> jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/program </property>
<property name="hibernate.connection.username">login</property>
<property name="hibernate.connection.password">passwd</property>
<property name="show_sql">true</property>
<mapping resource="com.gmail.user.persistence/Currency.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
我需要如何修复它的建议。
谢谢
最佳答案
从“finally” block 中删除“session.close();”。因为 session 已经关闭,所以当编译器尝试运行finally block 时出现空指针异常,
关于java - OpenShift 云中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25867429/