Eu tenho um aplicativo de boot spring de baunilha que consiste no seguinte pom.xml
4.0.0 xxx.alexius myapp 1.0-SNAPSHOT war my app Core Application Platform org.springframework.boot spring-boot-starter-parent 1.2.2.RELEASE UTF-8 1.7 org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-data-mongodb org.springframework.boot spring-boot-starter-mobile org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-social-facebook org.springframework.boot spring-boot-starter-social-twitter org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtime org.postgresql postgresql 9.4-1201-jdbc41 runtime org.springframework.boot spring-boot-starter-test test org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.7 1.7 -Xlint:all true true
Quando eu implantar isso em um Tomcat tudo funciona bem, mas quando eu tento implantar isso em um servidor Glassfish 4.1 recebo o seguinte erro
SEVERE: Class [ liquibase/integration/spring/SpringLiquibase ] not found. Error while loading [ class org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration$LiquibaseConfiguration ] SEVERE: Exception while deploying the app [platform] SEVERE: Exception during lifecycle processing java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
Alguma idéia do que está errado? É um bug da spring ou Glassfish?
Parece um bug no Glassfish: GLASSFISH-21265
Você pode tentar contornar isso adicionando metadata-complete="true"
em seu web.xml
assim:
O metadata-complete = “true” indica que os arquivos JAR em / WEB-INF / lib não precisam ser verificados para annotations específicas do Servlet 3.0, mas as classs do próprio aplicativo Web ainda serão verificadas.
Veja também: