You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring JMS教程项目构建成功后运行出现Jackson类找不到异常求助

问题排查与解决方案

一、先确认Java版本配置全局生效

  • 虽然设置了JAVA_HOME指向Java 17,但务必重新打开终端/命令行窗口,Windows旧窗口不会自动加载新环境变量。执行java -version和javac -version,确认输出均为17.0.6。
  • 若用IDE运行,需同步检查IDE配置:在项目结构设置中,将项目SDK、模块SDK都设为Java 17;同时在运行/调试配置里,把JRE也指定为Java 17。

二、Jackson依赖缺失的根源修复

出现com.fasterxml.jackson.databind.ObjectMapper的ClassNotFoundException,核心原因是运行时classpath缺少Jackson相关依赖——IDE能看到类是因为本地仓库有依赖,但构建后的运行环境未正确引入。

Maven项目修复步骤:

  1. 检查pom.xml,确保包含完整的Jackson与JMS整合依赖,官方示例需如下配置:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-jaxb-annotations</artifactId>
</dependency>
  1. 执行mvnw clean install重新构建,确保依赖下载完整且打包时被纳入运行classpath。
  2. 若用java -jar启动,检查生成的jar是否为Spring Boot可执行fat jar:执行jar tf target/[你的应用jar名].jar,确认输出中包含com/fasterxml/jackson/databind/ObjectMapper.class。

Gradle项目修复步骤:

  1. 检查build.gradle依赖配置,确保包含:
implementation 'org.springframework.boot:spring-boot-starter-activemq'
implementation 'com.fasterxml.jackson.module:jackson-module-jaxb-annotations'
  1. 执行gradlew clean build bootJar生成可执行jar,再用java -jar build/libs/[你的应用jar名].jar启动。

三、验证MessageConverter Bean配置

检查MappingJackson2MessageConverter的Bean定义,确保使用Spring Boot自动配置的ObjectMapper实例,而非手动创建的未初始化实例,正确定义示例:

@Bean
public MappingJackson2MessageConverter jacksonJmsMessageConverter() {
    MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
    converter.setTargetType(MessageType.TEXT);
    converter.setTypeIdPropertyName("_type");
    return converter;
}

内容的提问来源于stack exchange,提问作者Holland Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 02:35:09