payara 启动时未调用 @startup 和 @postConstruct

Dim*_*tri 1 java maven java-ee-7 payara-micro

我正在开发一个 JEE 应用程序,我想在应用程序启动时进行一些迁移。实际上,我正在使用payara-microDocker 作为服务器。由于未知原因,该代码从未被执行。

这是我的代码:

@Singleton
@Startup
public class FlywayMigration {


    @PostConstruct
    public void startMigration(){
      System.out.println("Starting flyway migration");
    }
} 
Run Code Online (Sandbox Code Playgroud)

我在我的 pom 中添加了 javaee-api 作为依赖项:

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这是我的 Dockerfile 的内容:

FROM payara/micro

COPY ./target/mywebapp.war $DEPLOY_DIR
Run Code Online (Sandbox Code Playgroud)

构建并运行 docker 镜像后,应用程序的日志显示该应用程序启动良好:

Payara Micro URLs
http://5b258e6a441a:8080/mywebapp

'mywebapp' REST Endpoints
 GET    /mywebapp/api/hello
 GET    /mywebapp/api/myresource
Run Code Online (Sandbox Code Playgroud)

谁能帮我找到解决方案?

Dim*_*tri 5

我终于让它发挥作用了。问题是我使用了错误的@Singleton注释。@javax.ejb.Singleton我以前不使用@javax.inject.Singleton.