@startup 和 @postConstruct 未在 payara 启动时调用
@startup and @postConstruct not called at payara startup
我正在开发一个 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>
这是我的 Docker 文件的内容:
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
谁能帮我找到解决办法?
我终于成功了。问题是我使用了错误的 @Singleton
注释。我以前使用 @javax.inject.Singleton
而不是 @javax.ejb.Singleton
。
我正在开发一个 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>
这是我的 Docker 文件的内容:
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
谁能帮我找到解决办法?
我终于成功了。问题是我使用了错误的 @Singleton
注释。我以前使用 @javax.inject.Singleton
而不是 @javax.ejb.Singleton
。