【问题标题】:Spring boot application deployment fails with JNDI warnings when custom logback-spring.xml included包含自定义 logback-spring.xml 时,Spring 引导应用程序部署失败并出现 JNDI 警告
【发布时间】:2017-11-10 11:47:01
【问题描述】:

当包含自定义 logback 设置文件 (logback-spring.xml) 时,Spring 引导应用程序部署失败并显示 JNDI 调试消息。这只发生在 linux 环境中,并且在 windows 环境中应用程序运行没有任何问题,即使显示了相同的调试消息。

一长串调试消息中的少数

15:33:22.537 [https-jsse-nio-8443-exec-70] DEBUG org.springframework.jndi.JndiTemplate - Looking up JNDI object with name [java:comp/env/logging.exception-conversion-word]
15:33:22.540 [https-jsse-nio-8443-exec-70] DEBUG org.springframework.jndi.JndiLocatorDelegate - Converted JNDI name [java:comp/env/logging.exception-conversion-word] not found - trying original name [logging.exception-conversion-word]. javax.naming.NameNotFoundException: Name [logging.exception-conversion-word] is not bound in this Context. Unable to find [logging.exception-conversion-word].
15:33:22.540 [https-jsse-nio-8443-exec-70] DEBUG org.springframework.jndi.JndiTemplate - Looking up JNDI object with name [logging.exception-conversion-word]
15:33:22.540 [https-jsse-nio-8443-exec-70] DEBUG org.springframework.jndi.JndiPropertySource - JNDI lookup for name [logging.exception-conversion-word] threw NamingException with message: Name [logging.exception-conversion-word] is not bound in this Context. Unable to find [logging.exception-conversion-word].. Returning null.

POM 文件

<?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>

<artifactId>licenserequestsimulator</artifactId>
<packaging>war</packaging>
<name>License Request Simulator</name>
<description>License Request Simulator</description>
<url>https://pronto.net/</url>
<version>1.0</version>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
</parent>

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>            
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
        <groupId>com.ibm.informix</groupId>
        <artifactId>jdbc</artifactId>
        <version>4.10.7.20160517</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.42</version>
    </dependency>

    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.7</version>
    </dependency>   
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

logback-spring.xml

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>

<include resource="org/springframework/boot/logging/logback/base.xml"/>
<property name="DEV_HOME" value="/logs/prontolicensing/" />
<property resource="application.properties" />

<!-- Datasource connection example -->
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
    <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
        <dataSource class="org.apache.tomcat.jdbc.pool.DataSource">
            <driverClassName>${spring.datasource.driver-class-name}</driverClassName>
            <url>${spring.datasource.url}</url>
            <username>${spring.datasource.username}</username>
            <password>${spring.datasource.password}</password>
        </dataSource>
    </connectionSource>
</appender>
<!-- Datasource connection example ends-->

<!--File appender-->
<appender name="fileAppender"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${DEV_HOME}/pronto-licensing-file.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} - %msg%n
        </Pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        rollover daily 
        <fileNamePattern>
            ${DEV_HOME}/archived/pronto-licensing-file.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
</appender>

<logger name="fileLogger" level="INFO" additivity="false">
    <appender-ref ref="fileAppender" />
</logger>
<!--File appender ends-->

<root level="ERROR">
    <appender-ref ref="DB" />
</root>

我应该怎么做才能克服这个问题?

【问题讨论】:

  • 这些是信息性消息...它们出现的事实是由于您启用了调试日志记录。
  • 尝试添加 org.springframework.bootspring-boot-starter-web
  • 正如@M.Deinum 所述,这些是debug 日志。无论如何,logback-spring.xml 的内容是什么?另外我希望日志记录可以在您的pom.xml 中使用,如果没有,您可以在您的pom 中包含spring-boot-starter-logging
  • @MohamedSanaulla 我在问题中附加了我的 logback-spring.xml 文件。有没有配置错误?

标签: java spring maven spring-boot logback


【解决方案1】:

尝试将logback-spring.xml 更改为logback.xml

在这种情况下,Spring Boot 不会使用其模板 (like mentioned here) 配置 logback。

所有关于 JNDI 名称的消息都应该消失了——比如 Spring Boot 中的 logback 自动配置功能。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,如果您将 logback-spring.xml 更改为 logback.xml,此跟踪将从控制台消失,但它们将写入“.log”文件中。 我不知道如何从控制台和日志文件中删除它们,但至少你可以选择

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多