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

Java 9环境下无需额外模块配置,正确使用Spring JAXB Marshaller的方法

在Java 9环境下无需额外定义模块,如何正确使用Spring的Jaxb2Marshaller?

先看你提供的示例代码:

@SpringBootApplication
public class App implements CommandLineRunner {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
    @Bean
    public Jaxb2Marshaller jaxb2Marshaller() {
        Jaxb2Marshaller bean = new Jaxb2Marshaller();
        bean.setContextPath("ch.sahits.game.helloworld");
        return bean;
    }
    @Override
    public void run(String... args) throws Exception {
        // 业务逻辑
    }
}

在Java 9环境下,JAXB相关的API和实现已经从JDK默认组件中移除,转为模块化的可选内容。如果不想额外定义模块,我们可以通过两种方式让Spring的Jaxb2Marshaller正常工作:

方法一:启动时添加模块参数

Java 9支持通过命令行参数手动加载需要的模块,你只需要在启动应用时加上--add-modules java.xml.bind参数即可:

java --add-modules java.xml.bind -jar your-spring-boot-app.jar

这个参数会通知JVM加载java.xml.bind模块,让Jaxb2Marshaller能找到所需的JAXB相关类。

方法二:引入JAXB相关依赖到项目

既然Java 9之后JAXB不再属于JDK的一部分,我们可以直接把JAXB的API和实现作为项目依赖引入,它们会被打包到应用的类路径中,无需额外的模块参数。

如果是Maven项目,在pom.xml中添加以下依赖:

<dependencies>
    <!-- JAXB API -->
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>
    <!-- JAXB 核心实现 -->
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.3.1</version>
        <scope>runtime</scope>
    </dependency>
    <!-- JAXB 核心工具类 -->
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.3.0.1</version>
    </dependency>
    <!-- 激活API(JAXB依赖此组件) -->
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>
</dependencies>

这些依赖属于自动模块,Java 9会自动从类路径加载它们,Spring的Jaxb2Marshaller就能正常初始化并运行了。

另外如果你使用的是Spring Boot 2.x及以上版本,框架已经做了部分自动配置,但添加上述依赖可以避免运行时出现ClassNotFoundException之类的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:28:38