首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.util.ServiceConfigurationError失败的Logstash编码器(datatype.jsr310.JavaTimeModule无法实例化)

java.util.ServiceConfigurationError失败的Logstash编码器(datatype.jsr310.JavaTimeModule无法实例化)
EN

Stack Overflow用户
提问于 2021-07-19 10:30:03
回答 2查看 4K关注 0票数 1

我正在我的springbootapp (2.4.8)中尝试使用基于JSON的日志记录。我遵循了github和其他一些与docs和StackOverflow相关的问题中提到的说明。但是,我不能解决这个问题。

下面是令人不悦的消息:

net.logstash.logback.encoder.LogstashEncoder@4fcee388中的错误-在动态加载杰克逊模块java.util.ServiceConfigurationError:com.fasterxml.jackson.databind.Module: Provider com.fasterxml.jackson.datatype.jsr310.JavaTimeModule无法实例化时发生错误

我确实确保添加了logstash-logback-encoder依赖项,并且logback依赖项是>= 1.2.0 (am使用1.2.3)。有关详细信息,请参阅依赖树的摘录。

代码语言:javascript
复制
[INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ <my-spring-boot-app> --
[INFO] +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] +- net.logstash.logback:logstash-logback-encoder:jar:6.6:compile
[INFO] +- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] +- ch.qos.logback:logback-access:jar:1.2.3:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.3:compile
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.3:compile
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.3:compile

请参见相应的src/main/resources/logback.xml:

代码语言:javascript
复制
<configuration>
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>
    <logger name="jsonLogger" additivity="false" level="DEBUG">
        <appender-ref ref="consoleAppender"/>
    </logger>
    <root level="INFO">
        <appender-ref ref="consoleAppender"/>
    </root>
</configuration>

以下是运行时异常:

代码语言:javascript
复制
   ERROR in net.logstash.logback.encoder.LogstashEncoder@4fcee388 - Error occurred while dynamically loading jackson modules java.util.ServiceConfigurationError: com.fasterxml.jackson.databind.Module: Provider com.fasterxml.jackson.datatype.jsr310.JavaTimeModule could not be instantiated

下面是对应的依赖项的pom.xml文件定义:

代码语言:javascript
复制
<properties>
    <java.version>11</java.version>
    <scribejava.version>5.6.0</scribejava.version>
    <ch.qos.logback.version>1.2.3</ch.qos.logback.version>
</properties>



<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>6.6</version>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>${ch.qos.logback.version}</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>${ch.qos.logback.version}</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-access</artifactId>
    <version>${ch.qos.logback.version}</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${com.fasterxml.jackson.core.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>${com.fasterxml.jackson.core.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>${com.fasterxml.jackson.core.version}</version>
</dependency>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-19 11:48:22

我想我想明白了。结果证明这是一个依赖关系问题。

(基本上,对于logstash6.6,jackson.core 2.9.3抛出了上面的错误。当我搬到2.12.1时,事情就开始起作用了。下面是am版本的实际细节--从依赖树中摘录)

代码语言:javascript
复制
[INFO] +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] +- net.logstash.logback:logstash-logback-encoder:jar:6.6:compile
[INFO] +- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] +- ch.qos.logback:logback-access:jar:1.2.3:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.1:compile
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.12.1:compile
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.1:compile
票数 0
EN

Stack Overflow用户

发布于 2022-09-07 13:02:38

对我来说,错误是不同的,但根本原因是依赖性问题。logstash需要杰克逊版本同步。下面是:https://github.com/logfellow/logstash-logback-encoder/releases,我在升级springboot版本时遇到了这个问题,这反过来升级了jackson,并导致应用程序启动失败。对于logstash 7.2,jackson升级到2.13.3很好

代码语言:javascript
复制
    java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in net.logstash.logback.encoder.LogstashEncoder@1a72a540 - Error occurred while dynamically loading jackson modules java.util.ServiceConfigurationError: com.fasterxml.jackson.databind.Module: com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule Unable to get public no-arg constructor
    at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:344)
    at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:298)
    at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:246)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68438987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档