Grails整合Vaadin 8报错:Failed to load the widgetset 求助
解决Grails + Vaadin 8的"Failed to load the widgetset"错误
嘿,刚接触Grails和Vaadin 8就碰到这个问题很正常,我来帮你捋捋怎么解决这个widgetset加载失败的问题:
1. 先手动编译Widgetset试试
Vaadin 8的组件需要对应的widgetset编译后才能在客户端正常运行,你可以先手动触发编译:
- 在项目根目录执行
gradle vaadinCompile命令 - 编译完成后,去
build/vaadin/widgetsets目录看看,有没有生成以你项目包名命名的widgetset文件夹(比如com.yourcompany.yourapp.widgetset.YourAppWidgetset)
2. 检查build.gradle的配置是否到位
你提到修改了build.gradle,得确保Vaadin的配置项是正确的,给你个参考配置:
apply plugin: "com.devsoap.plugin.vaadin" vaadin { version '8.14.3' // 选个Vaadin 8的稳定版本,这个版本兼容性不错 widgetset 'com.yourcompany.yourapp.widgetset.YourAppWidgetset' // 替换成你实际的widgetset路径 } buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath 'com.devsoap:gradle-vaadin-plugin:1.4.3' // 这个插件版本和Vaadin 8适配,别乱换 } }
重点要注意插件版本和Vaadin版本的兼容性,别瞎用最新版,容易踩坑。
3. 确认Gradle版本的兼容性
你用了Gradle 4.0,这个版本其实是兼容的,但有时候旧的缓存会搞事情:
- 先执行
./gradlew vaadinClean清理掉旧的编译文件 - 然后重新跑
./gradlew build试试 - 如果还是不行,可以试试把Gradle升级到4.10.3(Vaadin 8官方推荐的稳定版本),修改
gradle/wrapper/gradle-wrapper.properties里的distributionUrl:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
4. 检查项目里有没有Widgetset类
有时候模板生成的项目可能没自动创建这个类,你得手动补一个:
在 src/main/groovy/com/yourcompany/yourapp/widgetset/ 目录下创建 YourAppWidgetset.groovy,内容如下:
package com.yourcompany.yourapp.widgetset import com.vaadin.annotations.Widgetset @Widgetset("com.yourcompany.yourapp.widgetset.YourAppWidgetset") class YourAppWidgetset { }
创建完再重新编译widgetset就行。
5. 看看浏览器控制台的具体错误
打开浏览器F12的开发者工具,看控制台里的错误信息:
- 如果提示找不到widgetset.js,就去
build/resources/main/META-INF/resources/VAADIN/widgetsets目录看看编译后的文件在不在 - 再检查页面里的widgetset引用路径对不对,比如HTML里的
<script src="VAADIN/widgetsets/com.yourcompany.yourapp.widgetset.YourAppWidgetset/com.yourcompany.yourapp.widgetset.YourAppWidgetset.nocache.js"></script>
按照这几步一步步排查,应该能解决这个问题。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

