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

升级Jetty与CXF后构建报错:缺少java.net.http依赖求助

CXF 3.6.0 升级后缺失 java.net.http 依赖的解决办法

问题说明

升级Jetty(9.4.30 → 10.0.15)和CXF(3.3.7 → 3.6.0)后,构建代码时触发以下依赖错误:

缺失依赖项:org.apache.cxf.cxf-rt-transports-http 3.6.0 要求‘java.package; java.net.http 0.0.0’但未找到。

当前环境:

  • Java 11
  • Eclipse 4.23
  • JDK合规级别已设置为11
  • JAVA_HOME已指向Java 11

解决步骤

1. 锁定Maven编译的Java版本

在项目pom.xml中明确指定编译和目标Java版本为11,避免版本不一致:

<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

同时检查Maven全局配置(settings.xml),确保没有覆盖项目的Java版本设置。

2. 调整CXF依赖配置

CXF 3.6.0对java.net.http模块有依赖,该模块是Java 11自带的,可通过以下方式修复:

  • 排除cxf-rt-transports-http中自动引入的异常依赖,再显式声明JDK模块依赖:
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>3.6.0</version>
    <exclusions>
        <exclusion>
            <groupId>java.package</groupId>
            <artifactId>java.net.http</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- 显式引入Java 11自带的java.net.http模块 -->
<dependency>
    <groupId>java.net.http</groupId>
    <artifactId>java.net.http</artifactId>
    <version>11</version>
    <scope>system</scope>
    <systemPath>${java.home}/lib/modules/java.net.http.jmod</systemPath>
</dependency>

3. 清理Eclipse项目缓存

  • 执行Project > Clean清理项目编译文件
  • 删除项目根目录下的.classpath和.project文件,重新导入项目
  • 右键项目 → Maven > Update Project,刷新依赖配置

4. 验证Maven版本兼容性

确保使用的Maven版本支持Java 11(推荐3.6.0及以上),通过终端执行mvn -v查看版本,若版本过低则升级Maven。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:57:49