Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate spring boot启动的web是否应该依赖于jboss日志记录?_Hibernate_Logging_Jboss_Spring Boot_Logback - Fatal编程技术网

Hibernate spring boot启动的web是否应该依赖于jboss日志记录?

Hibernate spring boot启动的web是否应该依赖于jboss日志记录?,hibernate,logging,jboss,spring-boot,logback,Hibernate,Logging,Jboss,Spring Boot,Logback,springboot1.1.8.RELEASE依赖于springbootstarterweb会导致对hibernate验证器的依赖,而hibernate验证器又依赖于jboss日志记录 对jboss日志的依赖性导致jboss日志通过logback接管日志输出,logback也是一种依赖性,是spring引导的常用日志。至少,这是发生在我身上的事情。即使在启动时指定logback.configurationFile系统属性,也会完全忽略By logback.xml文件 16:56:30,956 [

springboot1.1.8.RELEASE依赖于springbootstarterweb会导致对hibernate验证器的依赖,而hibernate验证器又依赖于jboss日志记录

对jboss日志的依赖性导致jboss日志通过logback接管日志输出,logback也是一种依赖性,是spring引导的常用日志。至少,这是发生在我身上的事情。即使在启动时指定logback.configurationFile系统属性,也会完全忽略By logback.xml文件

16:56:30,956 [main] WARN  o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext - 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
我知道可以在maven或gradle中排除jboss日志记录,但这真的是必需的吗?spring boot starter web是否应该指定排除本身

这是应用程序启动时的输出:

12:56:42,137 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider
12:56:42,145 [main] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 5.0.3.Final
12:56:42,206 [main] DEBUG o.h.v.i.e.r.DefaultTraversableResolver - Cannot find javax.persistence.Persistence on classpath. Assuming non JPA 2 environment. All properties will per default be traversable.
但是,如果您在maven中使用exclude删除jboss日志依赖项,那么在运行时,您将从应用程序上下文启动中获得堆栈跟踪

16:56:30,956 [main] WARN  o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext - 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
谢谢


-Don

是的,如果您有可用的hibernate验证器,依赖项应该存在(如果我没有弄错的话,这是一个可选的依赖项)。redhat的人决定他们需要自己的日志框架。但是,它不应该干扰您的日志记录,因为它最终将输出到SLF4J,而SLF4J又将日志记录到logback。因此,我怀疑您的配置中还存在其他错误。还要注意,在启动时,spring boot将有自己的配置,您的配置文件将在稍后的过程中加载。日志的初始化过程分为两步。什么是您期望的不工作的?是的,我可以看到jboss日志正在使用slf4j,并确认了这一点,所以它应该是正常的。尽管现在我们在日志外观前面有一个日志外观。傻。我的问题是,我无法获取logback来读取配置文件。即使我指定了-Dlogback.configurationFile=/absolute/path/to/logback.xml,它也只会在类路径上读取配置文件。当我把它放在类路径上时,它工作正常。它们是同一个文件,我只希望我的配置在别处。使用
file:
作为前缀从文件系统而不是从类路径加载它。我猜它使用springs资源加载机制来加载文件。