Java @启动和@postConstruct未在payara启动时调用

Java @启动和@postConstruct未在payara启动时调用,java,maven,java-ee-7,payara-micro,Java,Maven,Java Ee 7,Payara Micro,我正在开发一个JEE应用程序,我想在应用程序启动时进行一些迁移。实际上,我使用的是带有Docker的payara micro。由于未知原因,此代码从未执行 这是我的密码: @Singleton @Startup public class FlywayMigration { @PostConstruct public void startMigration(){ System.out.println("Starting flyway migration");

我正在开发一个JEE应用程序,我想在应用程序启动时进行一些迁移。实际上,我使用的是带有Docker的
payara micro
。由于未知原因,此代码从未执行

这是我的密码:

@Singleton
@Startup
public class FlywayMigration {


    @PostConstruct
    public void startMigration(){
      System.out.println("Starting flyway migration");
    }
} 
我在pom中添加了javaee api作为依赖项:

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>
构建并运行docker映像后,应用程序的日志显示应用程序启动良好:

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

'mywebapp' REST Endpoints
 GET    /mywebapp/api/hello
 GET    /mywebapp/api/myresource

有人能帮我找到解决办法吗

我终于成功了。问题是我使用了坏的
@Singleton
注释。我没有使用
@javax.ejb.Singleton
,而是使用
@javax.inject.Singleton

我终于成功了。问题是我使用了坏的
@Singleton
注释。我没有使用
@javax.ejb.Singleton
,而是使用
@javax.inject.Singleton

由于未知原因,此代码从未执行。您如何启动应用程序?是的,应用程序启动。我甚至有一些rest web服务accessible@Dmitri . 我的意思是你如何启动应用程序?使用一些命令行或IDE配置?哦,好的,我实际上使用的是docker,war被复制到容器中,部署自动完成。在Payara微日志文件的底部,它为您提供了部署内容的摘要。这是在告诉你应用程序已经部署了吗?查看DockerFile也很有用。由于未知原因,此代码从未执行过。您如何启动应用程序?是的,应用程序启动。我甚至有一些rest web服务accessible@Dmitri . 我的意思是你如何启动应用程序?使用一些命令行或IDE配置?哦,好的,我实际上使用的是docker,war被复制到容器中,部署自动完成。在Payara微日志文件的底部,它为您提供了部署内容的摘要。这是在告诉你应用程序已经部署了吗?查看Dockerfile也很有用
Payara Micro URLs
http://5b258e6a441a:8080/mywebapp

'mywebapp' REST Endpoints
 GET    /mywebapp/api/hello
 GET    /mywebapp/api/myresource