在我的Vaadin应用程序中,我在web.xml
<init-param>
<param-name>widgetset</param-name>
<param-value>com.foo.bar.AppWidgetSet</param-value>
</init-param>
而且,我已将AppWidgetSet.gwt.xml
文件放在src/main/java/com/foo/bar/AppWidgetSet.gwt.xml
此设置正常,直到我升级到vaadin 7.7.0(从7.6.8)。升级后,当我尝试通过浏览器访问应用程序时出现以下错误。
INFO: Requested resource [/VAADIN/widgetsets/AppWidgetset/AppWidgetset.nocache.js] not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder.
似乎vaadin正在寻找widgetset的不同位置,因此我将AppWidgetSet.gwt.xml
放在类路径的根目录(src/main/java/AppWidgetSet.gwt.xml
)中并重新构建应用程序。
然后又恢复了工作。
是否将widgetset指定为init param不再可用?我是否必须将widgetset xml放在类路径本身的根目录中?
答案 0 :(得分:0)
将我的Vaadin应用程序从7.6.8升级到7.7.2后,我遇到了类似的问题。我注意到src / main / resources下的包开始递归递增:
以下是版本7.6.8的状态,之前将POM更新为7.7.7:
将POM更新为7.7.7后,在“myPackage”下出现了带有xml文件的新“myPackage”!只是为了强调每次重建后,这些文件夹不断创建和创建,所以在第4次构建后有超过10个子文件夹!
答案 1 :(得分:0)
似乎7.7.2中有关于自定义widgetset的错误。首先,检查你是否真的需要它们。没有客户端自定义小部件,只需忘记任何widgetset注释或任何相关的web.xml参数化,让Vaadin使用其新的默认AppWidgetset。如果没有,请考虑重构和将自定义客户端内容转换为单独的项目,安装在本地Maven仓库中,然后通过依赖项使用,仍然没有在主项目的路径中放置任何自己的gwt.xml。最后,如果上面都没有使用(如我的情况那样),只需等待7.7.3中的错误修复。
请参阅:https://dev.vaadin.com/ticket/20320
正如我所注意到的,新的7.7.2插件不会将任何内容放入源(即/ VAADIN / widgetsets),而是将编译后的JS直接存储在输出工件和war存档中。因此,@ Lahiru Chandima的解决方法可能不完全依赖于新的苦行僧7.7.2插件并使用一些旧的元素,如<webappDirectory>
和/或<hostedWebapp>
,提及${basedir}/src...
个位置
对于@dobrivoje我建议根据需要进行编译,然后通过注释掉Maven目标,删除令人惊讶的创建不必要的(嵌套)包和xml文件,并忘记客户端编译一段时间(在每个构建中真的需要吗?)
<!-- goal>update-widgetset</goal>
<goal>compile</goal -->