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

Vaadin从14升级到23.5.4后使用org.vaadin.tatu:TwinColSelect 3.2.0出现ClassNotFoundException问题求助

Vaadin从14升级到23.5.4后使用org.vaadin.tatu:TwinColSelect 3.2.0出现ClassNotFoundException问题求助

看起来你遇到的是版本兼容性导致的类缺失问题,我来帮你梳理下解决方案:

核心原因分析

org.vaadin.tatu:TwinColSelect 3.2.0版本大概率是针对**Vaadin 24+**开发的,它依赖的com.vaadin.flow.component.html.NativeLabel在Vaadin 23.5.4的环境中,要么存在类路径缺失,要么该版本的TwinColSelect使用了Vaadin 24才有的API调整,导致在Vaadin 23中找不到对应的类。

具体解决步骤

  1. 降级TwinColSelect到适配Vaadin23的版本
    你需要把TwinColSelect的版本切换到专为Vaadin23设计的3.0.x系列,比如最新的稳定版3.0.1。修改你的依赖配置:

    • Maven示例:
      <dependency>
          <groupId>org.vaadin.tatu</groupId>
          <artifactId>twincolselect</artifactId>
          <version>3.0.1</version>
      </dependency>
      

    修改后执行mvn clean install(Maven)或./gradlew clean build(Gradle),清理并重新构建项目,确保新依赖生效。

  2. 检查Vaadin核心依赖完整性
    确认你的项目中包含了Vaadin HTML组件的依赖,NativeLabel属于Vaadin的HTML组件模块。如果使用Spring Boot Starter,通常vaadin-spring-boot-starter已经包含该依赖,但如果有手动排除的情况,需要手动添加:

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-html-components</artifactId>
    </dependency>
    
  3. 排查依赖冲突
    用依赖分析工具检查是否有冲突的Vaadin版本或重复依赖:

    • Maven:执行mvn dependency:tree查看依赖树,排查是否有其他依赖引入了不同版本的Vaadin模块,如有冲突可以用<exclusions>排除掉。
    • Gradle:执行./gradlew dependencies进行类似排查。
  4. 确认代码导入正确性
    确保代码中导入的是org.vaadin.tatu.TwinColSelect,而不是Vaadin官方的com.vaadin.flow.component.twincolselect.TwinColSelect(官方版本在Vaadin23中也存在,但和tatu版本是两个不同的实现)。

按照以上步骤操作后,应该能解决这个ClassNotFoundException问题。

备注:内容来源于stack exchange,提问作者Eyvind Almqvist

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:55:31