我目前正在开发一个JPA Jersey Servlet,并且正在尝试使用Guice进行依赖注入。问题是,我得到了以下错误:
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我生成这个错误的代码是:
install(new JpaPersistModule("theseen"));
filter("/*").through(PersistFilter.class);如果我使用“标准”方式实例化一个EntitiManager并取消对这些行的注释,什么都不会发生。
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注入有什么问题吗?
发布于 2011-08-14 00:01:09
因为没人接,我就破门而入:
完全重新安装Glassfish和WebApp工作...
在我的本地机器上长达几个月的测试期间,一定有什么东西被损坏了。
https://stackoverflow.com/questions/7033399
复制相似问题