2015-08-28 37 views
0

我有一個帶有兩個jar的EJB ear應用程序部署。第一個jar有一個叫做Bootstrap的單例:啓動對不同模塊中的單例EJB的依賴性,但在同一個ear文件中

第二個jar有很多單例,只有在Bootstrap單例初始化後才需要啓動。

例如,在EAR文件的application.xml有這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6"> 
    <application-name>service</application-name> 
    <display-name>xxxx-ear</display-name> 
    <initialize-in-order>true</initialize-in-order> 
    <module> 
    <ejb>mainapp.jar</ejb> 
    </module> 
    <module> 
    <web> 
     ... 
    </web> 
    </module> 
    <module> 
    <ejb>bootstrap.jar</ejb> 
    </module> 
    <library-directory>lib</library-directory> 
</application> 

的bootstrap.jar有以下形式的單EJB:

@Singleton 
@Startup 
public class Bootstrap { 
    ... 
} 

的mainapp.jar有很多單身,例如其中的一個:

@Singleton 
@Startup 
@DependsOn("Bootstrap") 
public class JobManager 
{ 
    ... 
} 

事情似乎工作和應用程序似乎是適當的當@DependsOn()註釋不在JobManager bean上時,它將被部署。但是,添加@DependsOn註釋時,應用程序無法正確部署。如果沒有Bootstrap類的完整初始化,就不能保證JobManager bean能夠正常工作,因爲它依賴於由JobManager bean初始化的許多對象。

我的問題是如何在同一個應用程序ear文件中表示對另一個jar文件(因此不同模塊名稱)的單例bean的依賴關係?

回答

0

你可以試試這個:

@DependsOn("bootstrap.jar#Bootstrap") 

source

相關問題