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

使用Cloud KMS加密Java应用示例:Jetty插件执行遇API兼容错误

解决Bookshelf-3项目Jetty Maven插件API不兼容错误

我之前做这个Google Cloud KMS代码实验室时也碰到过一模一样的问题,核心原因就是老版本Jetty插件和当前环境的Java版本、依赖包不匹配,引发了API冲突。下面是几个亲测有效的解决步骤:

  • 先排查Java版本兼容性
    Jetty 9.3.8.v20160314这个旧版本只支持到Java 8,如果你的本地环境用的是Java 11或更高版本,肯定会出现API不兼容问题。先运行java -version确认你的Java版本:

    • 如果是Java 9+,要么降级到Java 8(适合严格跟着实验室步骤走的场景),要么升级Jetty插件版本(更推荐,适配新环境)。
  • 升级Jetty Maven插件版本
    打开项目根目录下的pom.xml,找到Jetty插件的配置块,把版本号替换成兼容你Java版本的稳定版。比如Java 11+可以用9.4.48.v20220622(这个版本支持Java 8到17):

    <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <!-- 替换这里的版本号 -->
        <version>9.4.48.v20220622</version>
        <configuration>
            <!-- 保留原来的配置内容不变 -->
            <webApp>
                <contextPath>/</contextPath>
            </webApp>
            <httpConnector>
                <port>8080</port>
            </httpConnector>
        </configuration>
    </plugin>
    
  • 清理并重新构建项目
    改完版本后,先清理旧的构建缓存和依赖:

    mvn clean install
    

    然后再启动Jetty:

    mvn jetty:run-exploded
    

    大部分情况下到这一步问题就解决了。

  • 检查依赖冲突(如果上面步骤无效)
    如果还是报错,可能是项目里其他依赖和Jetty的API冲突了。运行下面的命令生成依赖树,排查冲突:

    mvn dependency:tree
    

    重点看servlet-api、jetty-server这类和Jetty相关的依赖,确保它们的版本和你升级后的Jetty插件版本兼容,必要时调整对应依赖的版本号。

这个代码实验室的内容比较老,依赖版本都偏旧,遇到这类版本兼容问题很正常,优先升级插件到适配当前环境的版本就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:49:52