Java Wildfly-如何在加载持久性之前启动bean?

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

我想在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
    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]