java - 注入(inject)EntityListener

标签 java jpa jboss entity

当我尝试启动服务器 JBoss 7.0 时遇到问题,因为抛出错误。 当将entityListiner放在Entity上时会发生这种情况。

是否可以注入(inject)实体监听器?

跟踪:

MSC000001: Failed to start service jboss.persistenceunit."pagos-0.8.105.war#pagos_PU": org.jboss.msc.service.StartException in service jboss.persistenceunit."pagos-0.8.105.war#pagos_PU": javax.persistence.PersistenceException: [PersistenceUnit: pagos_PU] Unable to build Hibernate SessionFactory
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:172)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:117)
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:667)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:182)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: pagos_PU] Unable to build Hibernate SessionFactory
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882)
    at org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:154)
    ... 7 more
Caused by: org.jboss.weld.exceptions.IllegalArgumentException: WELD-001456: Argument resolvedBean must not be null
    at org.jboss.weld.util.Preconditions.checkArgumentNotNull(Preconditions.java:40)
    at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:794)
    at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
    at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:363)
    at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:374)
    at org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:70)
    at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
    at org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:72)
    at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:121)
    at org.hibernate.jpa.event.internal.jpa.ListenerFactoryBeanManagerStandardImpl$ListenerImpl.<init>(ListenerFactoryBeanManagerStandardImpl.java:84)
    at org.hibernate.jpa.event.internal.jpa.ListenerFactoryBeanManagerStandardImpl$ListenerImpl.<init>(ListenerFactoryBeanManagerStandardImpl.java:73)
    at org.hibernate.jpa.event.internal.jpa.ListenerFactoryBeanManagerStandardImpl.buildListener(ListenerFactoryBeanManagerStandardImpl.java:59)
    at org.hibernate.jpa.event.internal.jpa.CallbackBuilderLegacyImpl.resolveCallbacks(CallbackBuilderLegacyImpl.java:170)
    at org.hibernate.jpa.event.internal.jpa.CallbackBuilderLegacyImpl.buildCallbacksForEntity(CallbackBuilderLegacyImpl.java:69)
    at org.hibernate.jpa.event.spi.JpaIntegrator.integrate(JpaIntegrator.java:136)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:278)
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)

实体:

@Entity
@EntityListeners({Listener.class})
public class DetalleBeca implements Serializable {
...
..
}

监听者:

public class Listener {
@Inject
private LogFacade logFacade;    

@PostRemove
public void metodoRemover(DetalleBeca detalle) throws LogException {
        logfacade.reg(detalle)
        System.out.println(detalle);
}

最佳答案

你是对的。这是EAP 7.0 中的一个错误。这是门票:JBEAP-5371 , WFLY-2387

关于java - 注入(inject)EntityListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45085990/

相关文章:

java - Informix JDBC 上的 SSl 在 JBOSS 7 下不起作用

java - Linux Redhat .bash_profile 不起作用

java - Apache Parquet 无法读取页脚 : java. io.IOException:

如果只有一个客户端并且需要完整的对象读取,Java NIO 的优势

sql - Postgresql, hibernate "is not distinct"

java - 使用 JPA Criteria API 进行分页的总行数

jboss - Keycloak 自定义验证输出消息

java - socket编程中服务端和客户端程序出现 "helloworld"异常

java - 在 EAR 中捆绑不同版本的嵌入式 JPA 提供程序

java - JBOSS AS 5 的 JVM 6 内存设置如何?