Java @启动和@postConstruct未在payara启动时调用
我正在开发一个JEE应用程序,我想在应用程序启动时进行一些迁移。实际上,我使用的是带有Docker的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");
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