Как мне загрузить Spring Boot Application в wildfly?
Я создал приложение в Spring и хотел бы, чтобы оно работало в wildfly. Это НЕ веб-приложение, поэтому упаковка - это баночка.
При запуске jboss сообщает, что загрузил его:
14:50:42,899 INFO [org.jboss.weld.deployer] (MSC service thread 1-2) WFLYWELD0003: Processing weld deployment APPLICATION_cnp.jar
14:50:42,949 INFO [org.jboss.weld.deployer] (MSC service thread 1-2) WFLYWELD0006: Starting Services for CDI deployment: cnp.ear
14:50:43,031 INFO [org.jboss.weld.Version] (MSC service thread 1-2) WELD-000900: 2.2.16 (SP1)
14:50:43,066 INFO [org.jboss.weld.deployer] (MSC service thread 1-3) WFLYWELD0009: Starting weld service for deployment cnp.ear
14:50:45,517 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "cnp.ear" (runtime-name : "cnp.ear")
Точкой входа для приложения является этот класс:
//@Configuration
//@ComponentScan
//@EnableAutoConfiguration
//3 above added as per https://stackru.com/questions/35786401/
@SpringBootApplication
//3 below added to try and get java EE to bootstrap the app
//@Startup
//@Singleton
//@ApplicationScoped
public class CNPApplication {
private static final Logger log = LoggerFactory.getLogger(CNPApplication.class);
public static void main(String[] args) throws Exception {
SpringApplication.run(CNPApplication.class);
}
public CNPApplication() {
System.out.println("CNPApplication instantiated");
}
@PostConstruct
public void bootstrap() {
System.out.println("CNPApplication bootstrap");
SpringApplication.run(CNPApplication.class);
}
}
Мой файл POM выглядит так:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>APPLICATION_cnp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>APPLICATION_cnp</name>
<description>Courtesy Notification Processor</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Я развернул его как часть EAR. Консоль администратора wildfly показывает развертывание под названием cnp.ear
с вложенным размещением APPLICATION_cnp.jar
,
System.out.println
звонки в CNPApplication
класс не называется. Я перепробовал все аннотации в начале класса, и я попытался добавить beans.xml. После добавления beans.xml при запуске я получаю трассировку стека: Unable to resolve a bean for 'javax.persistence.EntityManager'
- По этой ссылке я решил эту проблему, удалив beans.xml, поскольку это приводит к конфликту CDI JAVA EE с пружиной.
Как я могу заставить вещь работать?