覆盖/禁用@Startup类

问题描述 投票:0回答:1

我说的是Java EE应用程序和Wildfly应用程序服务器。假设我有一个jar作为定义以下类的库:

@Singleton
@Startup
class StartupService {

    @PostConstruct
    public void onConstruct() {
        /* do something */
    }
}

现在,我有我的实际战争项目(maven项目),它具有上面描述的jar作为依赖项。因此,当战争部署到Wildfly并开始时,类StartupService被执行。

有没有办法在我的实际项目中覆盖行为或禁用StartupService

java dependency-injection ejb startup java-ee-8
1个回答
0
投票

尝试定义以下ejb-jar.xml:

<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.1"

    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/ejb-jar_3_1.xsd">

    <enterprise-beans>

        <session>

           <ejb-name>StartupService</ejb-name>

           <init-on-startup>false</init-on-startup>

        </session>

    </enterprise-beans>

</ejb-jar>

它必须位于WAR模块的WEB-INF目录中。我自己没有检查过,但它应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.