Should spring-boot-started-web have jboss-logging dependency?

Spring Download 1.1.8.RELEASE with spring-boot-starter-web dependency causes a hibernate-validator dependency, which in turn has a jboss-logging dependency.

The jboss-logging dependency causes jboss logging to capture log output from the log, which is also a dependency and is the usual logger for spring-boot. At least that's what happens to me. The logback.xml file is completely ignored even if you specify the logback.configurationFile system property at startup.

I know it is possible to exclude jboss-logging in maven or gradle, but is it really necessary? Should spring-boot-starter-web indicate the exception itself?

This is the result when the application starts:

12:56:42,137 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider 12:56:42,145 [main] INFO ohvalidator.internal.util.Version - HV000001: Hibernate Validator 5.0.3.Final 12:56:42,206 [main] DEBUG ohvierDefaultTraversableResolver - Cannot find javax.persistence.Persistence on classpath. Assuming non JPA 2 environment. All properties will per default be traversable. 

But if you remove the jboss-logging dependency with exclude in maven, at runtime you will get a stack trace from the application launch.

 16:56:30,956 [main] WARN osbceAnnotationConfigEmbeddedWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1554) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:199) ~[spring-context-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:620) ~[spring-context-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:467) ~[spring-context-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:109) [spring-boot-1.1.8.RELEASE.jar!/:1.1.8.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) [spring-boot-1.1.8.RELEASE.jar!/:1.1.8.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:320) [spring-boot-1.1.8.RELEASE.jar!/:1.1.8.RELEASE] at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) [spring-boot-1.1.8.RELEASE.jar!/:1.1.8.RELEASE] at com.infor.cloud.dojo.manager.server.Application.main(Application.java:283) [infor-cloud-dojo-manager-server-20141022T1625.jar!/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_20] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_20] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_20] at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_20] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53) [infor-cloud-dojo-manager-server-20141022T1625.jar!/:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_20] Caused by: java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger 

Thanks,

-Don

+5
source share

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


All Articles