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

从Vaadin 7迁移至Vaadin 8后需许可证?迁移遇授权检测问题求助

解决Vaadin 8迁移中的许可证检测异常问题

问题根源

你的项目依赖中混入了Vaadin Pro(商业版)相关组件,导致启动时触发许可证检查逻辑;而服务器环境无图形界面(X11),引发sun.awt.X11.XToolkit初始化失败的错误。

解决方案

1. 彻底清理Vaadin Pro依赖

检查项目构建文件(Maven pom.xml 或 Gradle build.gradle),移除所有商业版相关依赖:

  • 删除包含pro、commercial关键字的Vaadin依赖,例如vaadin-pro、vaadin-commercial-addons等
  • 确保仅引入Vaadin 8开源版核心模块:
    <!-- Maven示例 -->
    <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-server</artifactId>
            <version>8.14.3</version> <!-- 使用Vaadin 8最新稳定版 -->
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-client-compiled</artifactId>
            <version>8.14.3</version>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-themes</artifactId>
            <version>8.14.3</version>
        </dependency>
    </dependencies>
    
  • 执行依赖清理命令(Maven:mvn clean dependency:tree,Gradle:gradle dependencies),确认依赖树中无com.vaadin.pro相关包。

2. 强制禁用许可证检查(兜底方案)

若依赖清理后仍有残留,添加JVM启动参数彻底关闭许可证检测:

-Dvaadin.disable.license.check=true

或在应用初始化前设置系统属性:

// 可放在Spring启动类或Servlet初始化方法中
System.setProperty("vaadin.disable.license.check", "true");

3. 无头模式适配(临时规避X11错误)

如果服务器环境确实无图形界面,可添加JVM参数启用Java无头模式,避免加载XToolkit:

-Djava.awt.headless=true

注意:此方法仅规避表面错误,优先推荐清理Pro版依赖解决根源问题。

验证

重新构建并启动项目,确认LicenseChecker相关异常不再出现,应用正常初始化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:45:37