Failed to deploy Spring Boot App on Glassfish 4.1

I created a Spring boot application (webservice soap). Everything is in order, and the application works well through the integrated tomcat in Spring Boot. When I try to pack in a war and deploy in Glassfish 4.1, I am a strange mistake.

My maven configuration:

<?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> <parent> <!-- Your own application should inherit from spring-boot-starter-parent --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.0.RELEASE</version> </parent> <artifactId>MyWS</artifactId> <groupId>fr.companie</groupId> <name>myws</name> <description>Spring Boot Data JPA Project</description> <version>1.3</version> <organization> <name>some org</name> </organization> <packaging>${packaging.type}</packaging> <properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- for glassfish bug A mettre dans profil prod --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-velocity</artifactId> </dependency> <!-- integrate Spring with JAX-WS (cxf) --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.4</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>3.1.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.4</version> </dependency> </dependencies> <profiles> <profile> <id>production</id> <properties> <packaging.type>war</packaging.type> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>${project.name}</finalName> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <packagingExcludes>**/*.sql</packagingExcludes> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>developpement</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <packaging.type>jar</packaging.type> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> </profiles> </project> 

And the deployment error:

 remote failure: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration$DispatcherServletConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.autoconfigure.web.ServerProperties org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration$DispatcherServletConfiguration.server; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverProperties' defined in class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.jboss.logging.LoggerProviders. Please see server.log for more details. Command deploy failed. 

I tried to add jboss logging of dependencies and log4j sl4j and therefore one dependency without success ....: (

Reference:)!

+1
source share
2 answers

Mistake in a glass fish. Fix in version 4.1.1

+1
source

In my case, this error message hid incompatibility between versions of hibernate 5 and jboss-logging.

The problem was that the jboss-logging version provided by spring boot (3.3.0.Final) was overridden by an older version already included in Glassfish libraries (3.1.3-GA), in the "modules" section.

The solution was to add the file "glassfish-web.xml" in the WEB-INF folder of the web application with the following contents (as suggested in fooobar.com/questions/188945 / ... ).

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> <glassfish-web-app> <class-loader delegate="false"/> </glassfish-web-app> 

This ensures that project libraries are loaded instead of server ones. After that, the spring boot project runs flawlessly on a glass fish.

+1
source

Source: https://habr.com/ru/post/984668/


All Articles