Jboss EAP 7.1 not load Spring Boot Context/Application When package as EAR
estevaojordao Jul 26, 2018 10:32 AMI'm having a hard time, I'm not able to generate an EAR using Maven with Spring boot in my POC project.
When deploying in JBoss 7.1 EAP, jboss does not load the context/application of spring, but also does not appear any error, could you help me, by kindly already tried in several ways.
When I perform the deploy of WAR, everything works perfectly, the problem is in the packaging of my EAR I think.
Main pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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>br.com.me.security</groupId> <artifactId>security</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>security</name> <description>Aplicação para gerenciamento de segurança</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.14.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <modules> <module>security-commons</module> <module>security-services</module> <module>security-ear</module> </modules> <properties> <security.version>0.0.1-SNAPSHOT</security.version> <version.ear.plugin>2.6</version.ear.plugin> <version.war.plugin>2.6</version.war.plugin> <swagger.version>2.6.1</swagger.version> <java-version>1.8</java-version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>br.com.me.security</groupId> <artifactId>security-commons</artifactId> <version>${security.version}</version> <type>jar</type> <!-- <type>ejb</type> --> <scope>compile</scope> </dependency> <dependency> <groupId>br.com.me.security</groupId> <artifactId>security-services</artifactId> <version>${security.version}</version> <type>war</type> </dependency> <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-core</artifactId> <version>1.5.10</version> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.5.3</version> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project>
WAR pom.xml
<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> <artifactId>security-services</artifactId> <packaging>war</packaging> <name>security-services</name> <parent> <groupId>br.com.me.security</groupId> <artifactId>security</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator</artifactId> </dependency> <dependency> <groupId>br.com.me.security</groupId> <artifactId>security-commons</artifactId> <version>${security.version}</version> </dependency> <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-core</artifactId> </dependency> </dependencies> <properties> <start-class>br.com.me.security.SecurityApplication</start-class> </properties> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- <version>${spring.boot.version}</version> --> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <!-- <version>2.6</version> --> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project>
EAR pom.xml
<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> <parent> <groupId>br.com.me.security</groupId> <artifactId>security</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>security-ear</artifactId> <name>security-ear</name> <packaging>ear</packaging> <dependencies> <dependency> <groupId>br.com.me.security</groupId> <artifactId>security-services</artifactId> <type>war</type> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>${version.ear.plugin}</version> <configuration> <version>6</version> <defaultLibBundleDir>lib</defaultLibBundleDir> <modules> <webModule> <groupId>br.com.me.security</groupId> <artifactId>security-services</artifactId> <bundleFileName>security-services.war</bundleFileName> <contextRoot>/security</contextRoot> </webModule> </modules> <fileNameMapping>no-version</fileNameMapping> </configuration> </plugin> </plugins> </build> </project>
Deployment content:
C:. └───security-ear.ear ├───lib ├───META-INF │ └───maven │ └───br.com.me.security │ └───security-ear └───security-services.war ├───br │ └───com │ └───me │ └───security │ ├───infra │ │ └───config │ └───web ├───META-INF │ └───maven │ └───br.com.me.security │ └───security-services └───WEB-INF └───lib └───security-commons-0.0.1-SNAPSHOT.jar └───META-INF └───maven └───br.com.me.security └───security-commons
My application class:
//@PropertySources({ @PropertySource("classpath:application.properties")}) /*@Configuration @ComponentScan(basePackages="br.com.me.security") @EnableAutoConfiguration*/ @SpringBootApplication public class SecurityApplication extends SpringBootServletInitializer implements CommandLineRunner { private static final Class<SecurityApplication> applicationClass = SecurityApplication.class; @Override protected SpringApplicationBuilder configure(final SpringApplicationBuilder app) { System.out.println("Up here test"); return app.sources(SecurityApplication.class); } public static void main(final String[] args) { SpringApplication.run(SecurityApplication.class, args); } @Override public void run(String... args) throws Exception { } /* @Override public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(context)); registration.setLoadOnStartup(1); registration.addMapping("/*"); // required JBOSS EAP 6 / AS 7 super.onStartup(container); }*/ }
File jboss-web.xml
<?xml version="1.0" encoding="UTF-8"?> <jboss-web> <context-root>/security</context-root> </jboss-web>
File jboss-deployment-structure.xml
<jboss-deployment-structure> <deployment> <!-- Exclusions allow you to prevent the server from automatically adding some dependencies --> <exclusions> <module name="org.slf4j" /> <module name="org.slf4j.impl" /> </exclusions> </deployment> </jboss-deployment-structure>
Thank you for your time and attention!!