更新为7.7.0后,Vaadin widgetset路径发生了变化

时间:2016-09-07 16:05:51

标签: java vaadin

在我的Vaadin应用程序中,我在web.xml

中指定了我自己的widgetset
    <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放在类路径本身的根目录中?

2 个答案:

答案 0 :(得分:0)

将我的Vaadin应用程序从7.6.8升级到7.7.2后,我遇到了类似的问题。我注意到src / main / resources下的包开始递归递增:

以下是版本7.6.8的状态,之前将POM更新为7.7.7:

  • 的src /主/资源
  • mypackage的
  • MyAppWidgetset.gwt.xml

将POM更新为7.7.7后,在“myPackage”下出现了带有xml文件的新“myPackage”!只是为了强调每次重建后,这些文件夹不断创建和创建,所以在第4次构建后有超过10个子文件夹!

  • 的src /主/资源
  • .... mypackage的
  • ........的 mypackage的
  • ................的 MyAppWidgetset.gwt.xml
  • ................................的 mypackage的
  • ............................................... 。的 MyAppWidgetset.gwt.xml
  • ...
  • MyAppWidgetset.gwt.xml

答案 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 -->