【问题标题】:How to get rid of Spring Neo4j startup warnings?如何摆脱 Spring Neo4j 启动警告?
【发布时间】:2020-01-10 08:25:00
【问题描述】:

我正在将 Spring Data Neo4j 与 Springboot 一起使用,并且该应用程序可以正常工作。

但是,如果可能,我想在启动时删除大量警告。

2019-09-08 14:15:20.788  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.apache.commons.logging.Log.fatalEnabled
2019-09-08 14:15:20.789  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.apache.commons.logging.Log.errorEnabled
2019-09-08 14:15:20.790  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.apache.commons.logging.Log.infoEnabled
2019-09-08 14:15:20.790  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.apache.commons.logging.Log.debugEnabled
2019-09-08 14:15:20.790  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.apache.commons.logging.Log.traceEnabled
2019-09-08 14:15:20.791  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.apache.commons.logging.Log.warnEnabled
2019-09-08 14:15:20.796  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.parent
2019-09-08 14:15:20.796  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.environment
2019-09-08 14:15:20.797  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.classLoader
2019-09-08 14:15:20.797  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.displayName
2019-09-08 14:15:20.797  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.startupDate
2019-09-08 14:15:20.798  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.beanDefinitionCount
2019-09-08 14:15:20.798  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.autowireCapableBeanFactory
2019-09-08 14:15:20.798  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.beanDefinitionNames
2019-09-08 14:15:20.799  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.parentBeanFactory
2019-09-08 14:15:20.799  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.id
2019-09-08 14:15:20.799  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.context.ApplicationContext.applicationName
2019-09-08 14:15:20.801  INFO 10121 --- [  restartedMain] o.s.d.neo4j.mapping.Neo4jMappingContext  : No class information found in OGM meta-data for class org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration so treating as simple type for SD Commons
2019-09-08 14:15:20.802  INFO 10121 --- [  restartedMain] o.s.d.neo4j.mapping.Neo4jMappingContext  : No class information found in OGM meta-data for class org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder so treating as simple type for SD Commons
2019-09-08 14:15:20.805  INFO 10121 --- [  restartedMain] o.s.d.neo4j.mapping.Neo4jMappingContext  : No class information found in OGM meta-data for class org.springframework.security.config.annotation.web.builders.HttpSecurity so treating as simple type for SD Commons
2019-09-08 14:15:20.850  INFO 10121 --- [  restartedMain] o.s.d.neo4j.mapping.Neo4jMappingContext  : No class information found in OGM meta-data for class java.util.ArrayList so treating as simple type for SD Commons
2019-09-08 14:15:20.896  INFO 10121 --- [  restartedMain] o.s.d.neo4j.mapping.Neo4jMappingContext  : No class information found in OGM meta-data for class org.springframework.http.HttpHeaders so treating as simple type for SD Commons
2019-09-08 14:15:20.929  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.core.env.Environment.defaultProfiles
2019-09-08 14:15:20.929  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: org.springframework.core.env.Environment.activeProfiles
2019-09-08 14:15:20.932  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.initParameterNames
2019-09-08 14:15:20.932  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.virtualServerName
2019-09-08 14:15:20.932  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.classLoader
2019-09-08 14:15:20.932  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.filterRegistrations
2019-09-08 14:15:20.933  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.servletNames
2019-09-08 14:15:20.933  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.sessionTrackingModes
2019-09-08 14:15:20.933  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.contextPath
2019-09-08 14:15:20.933  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.defaultSessionTrackingModes
2019-09-08 14:15:20.934  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.majorVersion
2019-09-08 14:15:20.934  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.effectiveMinorVersion
2019-09-08 14:15:20.934  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.sessionCookieConfig
2019-09-08 14:15:20.934  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.effectiveSessionTrackingModes
2019-09-08 14:15:20.934  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.attributeNames
2019-09-08 14:15:20.935  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.serverInfo
2019-09-08 14:15:20.935  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.servletRegistrations
2019-09-08 14:15:20.935  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.jspConfigDescriptor
2019-09-08 14:15:20.935  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.servlets
2019-09-08 14:15:20.936  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.requestCharacterEncoding
2019-09-08 14:15:20.936  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.responseCharacterEncoding
2019-09-08 14:15:20.936  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.sessionTimeout
2019-09-08 14:15:20.936  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.minorVersion
2019-09-08 14:15:20.937  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.servletContextName
2019-09-08 14:15:20.937  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.ServletContext.effectiveMajorVersion
2019-09-08 14:15:20.938  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.FilterConfig.initParameterNames
2019-09-08 14:15:20.938  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.FilterConfig.servletContext
2019-09-08 14:15:20.939  WARN 10121 --- [  restartedMain] o.s.d.n.mapping.Neo4jPersistentProperty  : Owning ClassInfo is null for property: javax.servlet.FilterConfig.filterName

是什么让它如此不开心?

【问题讨论】:

  • 你有想过这个吗?
  • 不,我现在只是过滤那些:(
  • 其实,我终于解决了... :)。我会发布答案...

标签: spring-boot neo4j spring-data-neo4j


【解决方案1】:

有同样的问题(SpringBoot 2.2.2 依赖 spring-boot-starter-data-neo4j)。通过向主 @SpringBootApplication 带注释的应用程序类添加 both 注释来消除警告和缩小实体/模型类的扫描范围:

@EnableNeo4jRepositories("my.project.reposoitory")
@EntityScan("my.project.model")

避免需要单独的@Config 类/覆盖 SpringBoot 自动配置。请参阅docs

更新: 将 Spring Boot 版本提高到 2.2.4.RELEASE,因为我在从 Neo4jRepository 声明性方法返回任何数据时遇到问题。怀疑这与 tx 相关,会引发缺陷。

【讨论】:

  • 根据一些设置教程,我已经拥有@EnableNeo4jRepositories。添加@EntityScan 也为我消除了错误。
【解决方案2】:

我为我的应用程序解决此错误的最简单方法是在application.properties 文件中添加以下行

logging.level.org.spring.data.neo4j.mapping.*=ERROR

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,2天后,我终于弄明白了......

    我的 pom.xml 看起来像这样:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-neo4j</artifactId>
            <version>2.2.2.RELEASE</version> <!--$NO-MVN-MAN-VER$-->
        </dependency>
    

    然后通常您的应用程序属性中会包含用户名和密码:

    spring.data.neo4j.open-in-view=false
    spring.data.neo4j.uri=bolt://localhost
    spring.data.neo4j.username=neo4j
    spring.data.neo4j.password=xxx
    

    您还将获得启用电话:

    @EnableNeo4jRepositories

    默认情况下,Neo4j 代码似乎正在扫描您应用中的所有类,但您可以覆盖此行为:

    1. 创建一个配置类并将您的 EnableNeo4jRepositories 移动到那里
    2. 指定您的 repo 基础包
    3. 指定您的模型基础包

    现在 Neo4j 代码知道只扫描 repo 和模型包。这是我的电影数据集的配置类:

    @Configuration
    @EnableNeo4jRepositories(basePackages="org.xx.yy.movies.repositories")
    public class MoviesDataSourceConfig {
    
        @Bean
        public org.neo4j.ogm.config.Configuration getConfiguration() {
            org.neo4j.ogm.config.Configuration config = new Builder()
                    .uri("bolt://username:password@localhost:7687").
                    build();
            return config;
        }
    
        @Bean
        public Neo4jTransactionManager transactionManager() {
            return new Neo4jTransactionManager(sessionFactory());
        }
    
        @Bean
        public SessionFactory sessionFactory() {
            return new SessionFactory(getConfiguration(), "org.xx.yy.movies.models");
        }
    }
    

    请注意,您需要在 uri 中指定用户名和密码...这仍然是 POC 代码,但我只是将它们从 spring.data.neo4j 属性中提取出来以进行生产。

    没有更多警告消息!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2010-10-23
      • 2016-02-04
      • 2021-11-08
      相关资源
      最近更新 更多