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

Jersey返回XML报错:MessageBodyWriter not found for application/xml

解决Jersey项目中MessageBodyWriter not found for media type=application/xml错误

问题原因

该错误是因为Jersey缺少处理XML序列化的核心桥接组件。虽然你已引入JAXB的API和运行时依赖,但Jersey需要专门模块来衔接JAXB与自身的消息体处理机制,同时你的依赖中存在重复的JAXB实现,可能引发版本冲突。

解决方案

1. 清理重复的JAXB依赖

你的pom.xml中同时引入了org.glassfish.jaxb:jaxb-runtime和com.sun.xml.bind:jaxb-impl,二者属于同一JAXB实现的不同groupId版本,保留一个即可,建议删除com.sun.xml.bind:jaxb-impl依赖。

2. 添加Jersey XML媒体支持依赖

引入jersey-media-jaxb模块,这是Jersey官方提供的XML处理扩展,负责将带JAXB注解的实体类序列化为XML响应。

3. 统一Jersey依赖版本

确保所有Jersey相关依赖使用相同版本,避免版本不兼容问题。可通过properties节点统一管理版本。

修改后的完整pom.xml依赖示例

<properties>
    <jersey.version>3.1.2</jersey.version> <!-- 统一Jersey版本 -->
</properties>

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <!-- JSON支持(按需保留) -->
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-binding</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <!-- Jersey XML媒体核心支持 -->
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-jaxb</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <!-- JAXB基础依赖 -->
    <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>jakarta.activation</groupId>
        <artifactId>jakarta.activation-api</artifactId>
        <version>2.1.0</version>
    </dependency>
</dependencies>

验证操作

  1. 执行mvn clean install清理并重新构建项目
  2. 重启服务器后访问/alien接口,此时应能正常返回XML格式的Alien数据

内容的提问来源于stack exchange,提问作者Ritesh Parwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 11:12:23