在payara初创公司没有调用@startup和@postConstruct

时间:2017-09-07 22:36:31

标签: java maven java-ee-7 payara-micro

我正在开发一个JEE应用程序,我希望在应用程序启动时进行一些迁移。实际上,我使用payara-micro与Docker作为服务器。由于未知原因,此代码永远不会执行。

这是我的代码:

@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>

以下是我的Dockerfile的内容:

FROM payara/micro

COPY ./target/mywebapp.war $DEPLOY_DIR

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

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

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

任何人都可以帮我找到解决方案吗?

1 个答案:

答案 0 :(得分:2)

我终于成功了。问题是我使用了错误的s_id cities population 1 city1 543 2 city5 987 注释。而不是使用@Singleton我曾经@javax.ejb.Singleton