Java Wildfly-如何在加载持久性之前启动bean?
我想在Wildfly 8.0中加载持久化单元之前执行一些逻辑。 我有一个这样的结构:Java Wildfly-如何在加载持久性之前启动bean?,java,jpa,ejb,ear,wildfly,Java,Jpa,Ejb,Ear,Wildfly,我想在Wildfly 8.0中加载持久化单元之前执行一些逻辑。 我有一个这样的结构: xxx.ear before-persistence-bean.jar beans.jar 战争 jar包含具有persistence.XML和会话bean的实体bean before-persistence-bean.jar包含一个类: @Startup @Singleton public class BeforePersistenceServiceBean { @PostConstruct
- xxx.ear
- before-persistence-bean.jar
- beans.jar
- 战争
@Startup
@Singleton
public class BeforePersistenceServiceBean {
@PostConstruct
public void performOperations() {...}
}
在application.xml中,我有:
<initialize-in-order>true</initialize-in-order>
<module>
<ejb>before-persistence-bean.jar</ejb>
</module>
<module>
<ejb>beans.jar</ejb>
</module>
<module>
<web>
<web-uri>xxx.war</web-uri>
<context-root>/xxx</context-root>
</web>
</module>
但在PersistenceServiceBean不依赖于持久性单元之前,这里发生了什么
---编辑---
在持久性启动之前部署这个bean失败之后,我使用了这个解决方案
与中所述类似(即使用Hibernate Integrator API)如果您的EAR指示您需要,请将
jboss部署结构.xml
添加到META-INF
目录中
我可以想象里面的东西会是什么样子
假的
您能提供代码片段吗?这将有助于调试它。方法performOperations实际上是空的(目前),只是测试可能的解决方案以在部署持久性单元之前执行某些操作。编辑没有帮助,无论ear子部署隔离设置为true还是false-同一个问题(service jboss.persistenceunit.“xxx.ear/beans.jar#pu#name”(缺少))我假设答案是肯定的,但是您的beans.jar是否使用JPA?是的,正如我所说,beans.jar包含带有JPA persistence.xml的实体bean,但是before-persistence-bean.jar既不依赖beans.jar也不依赖JPANo,错误消息中没有其他内容,只是缺少dependency。。。我已经找到了问题编辑部分描述的她的解决方案,谢谢
service jboss.persistenceunit."xxx.ear/beans.jar#pu_name" (missing) dependents:
[service jboss.deployment.subunit."xxx.ear"."before-persistence
bean.jar".component.BeforePersistenceServiceBean.START]