首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Guice和JPA注入-奇怪的错误

Google Guice和JPA注入-奇怪的错误
EN

Stack Overflow用户
提问于 2011-08-12 05:56:32
回答 1查看 2K关注 0票数 1

我目前正在开发一个JPA Jersey Servlet,并且正在尝试使用Guice进行依赖注入。问题是,我得到了以下错误:

代码语言:javascript
复制
Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: com.google.inject.CreationException: Guice creation errors:

1) null returned by binding at com.google.inject.persist.jpa.JpaPersistModule.configurePersistence(JpaPersistModule.java:63)
 but parameter 1 of com.google.inject.persist.jpa.JpaPersistService.<init>() is not @Nullable
  while locating java.util.Properties annotated with @com.google.inject.persist.jpa.Jpa()
   for parameter 1 at com.google.inject.persist.jpa.JpaPersistService.<init>(JpaPersistService.java:43)
 at com.google.inject.persist.jpa.JpaPersistModule.configurePersistence(JpaPersistModule.java:67)
 while locating com.google.inject.persist.jpa.JpaPersistService
   for field at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.emProvider(JpaLocalTxnInterceptor.java:33)
 at com.google.inject.persist.jpa.JpaPersistModule.configurePersistence(JpaPersistModule.java:76)

2) null returned by binding at com.google.inject.persist.jpa.JpaPersistModule.configurePersistence(JpaPersistModule.java:63)
 but parameter 1 of com.google.inject.persist.jpa.JpaPersistService.<init>() is not @Nullable
  while locating java.util.Properties annotated with @com.google.inject.persist.jpa.Jpa()
    for parameter 1 at com.google.inject.persist.jpa.JpaPersistService.<init>(JpaPersistService.java:43)
  at com.google.inject.persist.jpa.JpaPersistModule.configurePersistence(JpaPersistModule.java:67)
  while locating com.google.inject.persist.jpa.JpaPersistService
  while locating com.google.inject.persist.UnitOfWork 
    for field at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.unitOfWork(JpaLocalTxnInterceptor.java:36)
  at com.google.inject.persist.jpa.JpaPersistModule.configurePersistence(JpaPersistModule.java:76)
2 errors

我生成这个错误的代码是:

代码语言:javascript
复制
install(new JpaPersistModule("theseen")); 
filter("/*").through(PersistFilter.class);

如果我使用“标准”方式实例化一个EntitiManager并取消对这些行的注释,什么都不会发生。

代码语言:javascript
复制
 EntityManagerFactory emf = Persistence
            .createEntityManagerFactory("theseen");
 EntityManager em = emf.createEntityManager();

 em.getTransaction().begin();
 em.merge(s);
 em.getTransaction().commit();

就像一种护身符。因此,我认为如果数据库连接必须是正常的设置。

这些错误可能是什么呢?我在另一个测试环境中测试了相同的应用程序,它工作了!这两台机器都使用Glassfish 3.1,集成了m2eclipse和m2wtp的Eclipse Indigo。我将Guice 3.0与guice-persist 3.0和guice-servlet 3.0一起使用。运行该应用程序的机器运行的是装有OpenJDK的Ubuntu11.04,出现问题的机器使用的是装有JDK1.6v26的Windows7。我通常使用Glassfish提供的数据源,但即使使用普通的persistence.xml也不起作用。

我很困惑..。你知道JPA的Guice注入有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-14 00:01:09

因为没人接,我就破门而入:

完全重新安装Glassfish和WebApp工作...

在我的本地机器上长达几个月的测试期间,一定有什么东西被损坏了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7033399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档