我花了几天时间了解这个问题,但我还没有想出解决方案。以下是有类似问题的帖子: Similar Post 1,Similar Post 2,Similar Post 3。我在那里尝试了一些部分解决方案,但没有解决问题。
问题
我正在开发一个 Google Web 应用程序并使用 Hibernate 作为持久层来连接到 Postgresql 数据库。我使用 GWT Eclipse 插件附带的内置 Jetty 服务器在开发模式下运行它。在配置 Jetty 服务器方面,我从这篇文章中获得了一些帮助。
我已经使用 Hibernate Tools 进行逆向工程并导出以下内容:
- 域代码 (.java)
- 休眠 XML 映射 (.hbm.xml)
- DAO 代码 (.java)
- 休眠 XML 配置
这些都已导出到 src 文件夹,并且我已经使用 Hibernate Tool 验证了配置至少能够提取模式信息。
现在问题出现在 Jetty 服务器开始运行之后。一旦您访问与应用程序关联的站点,它就会在 Eclipse 的调试控制台中报告以下错误:
com.site.application.<reverse engineered DAO> getSessionFactory
SEVERE: Could not locate SessionFactory in JNDI
javax.naming.NameNotFoundException; remaining name 'SessionFactory'
at org.mortbay.naming.NamingContext.lookup(NamingContext.java:578)
at org.mortbay.naming.NamingContext.lookup(NamingContext.java:680)
at org.mortbay.naming.local.localContextRoot.lookup(localContextRoot.java:164)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.site.application.<reverse engineered DAO>.getSessionFactory(<reverse engineered DAO>.java:31)
结尾:
[ERROR] 500 - POST <application path> (127.0.0.1) xxxx bytes
如果您需要更多详细信息,请告诉我。我不想用调试信息淹没页面。
环境
- Ubuntu 12.04 LTS
- Eclipse Juno 4.2 构建 ID:20120614-1722
- GWT SDK 2.4.0
- 休眠 4.0
- PostgreSQL 9.1