当我为我的项目编译widgetset时,它会从类路径上的jar跳过一个继承的widgetset。手动将必要的widgetset添加到我的.gwt.xml文件中并没有帮助,因为每次重新编译widgetset时,构建脚本都会替换该文件。
具体来说,我已经接管了一个使用vaadin FilterTable插件的项目(因此我只使用了vaadin几周)。我从github下载了插件并进行了一些更改(但没有涉及widgetset / connectors),然后尝试在我的主项目中使用新版本。将FilteringTable7项目添加到我的部署程序集将不起作用,因为该项目包含与某些演示表关联的主UI类,从而导致部署.war而不是.jar。相反,我导出了一个FilteringTable7A.jar文件,并将其包含在部署程序集以及构建路径库中(类路径,我假设)。当然我也从ivy.xml文件中删除了官方插件。
FilteringTable演示项目使用我的更改正确构建和运行。带有widgetset的.jar文件已成功复制到wtpwebapps / [project] / WEB-INF / lib /,并列在详细widgetset编译器输出的类路径中。编译器输出不会将其列为找到的widgetset:
Widgetsets found from classpath:
org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset in jar:file:C:/Users/matt/.ivy2/cache/org.vaadin.addons/popupbutton/jars/popupbutton-2.5.0.jar!/
com.vaadin.DefaultWidgetSet in jar:file:C:/Users/matt/.ivy2/cache/com.vaadin/vaadin-client/jars/vaadin-client-7.1.11.jar!/
com.hra.diams.widgetset.DiamsWidgetset in file://C/Users/matt/Documents/...
因此,widgetset编译时没有错误,当我运行项目时,我得到了臭名昭着的
Widgetset' com.hra.diams.widgetset.DiamsWidgetset'不含 实施......
我已阅读(之前曾帮助过)许多与此错误相关的答案,但在这种情况下,问题不在于将servlet指向正确的widgetset,而是将widgetset编译器指向继承的widgetset。当我添加
<inherits name="org.tepi.filtertable.gwt.FilterTableWidgetset" />
到我的DiamsWidgetset.gwt.xml文件并重新编译widgsetset,编译器忽略它并更改文件。
奇怪的是,它上周工作了几个小时,但当我刷新一些东西以获得最新的变化时,它停止工作并且现在不会再回来了。
如何让编译器找到插件所需的widgetset?
提前致谢。
Eclipse 3.7.2 with Vaadin plugin 2.2.0.201306261112 发布到Tomcat v7.0
答案 0 :(得分:1)
我似乎找到了解决我具体问题的方法。放入我的jar中的MANIFEST.MF文件eclipse是最小的并且是自动生成的。当我从原始jar复制清单时,widgetset编译器能够找到所有内容。自动覆盖的DiamsWidgetset.gwt.xml文件现在包含正确的继承widgetset。
我怀疑我需要添加到清单的关键行是
python manage.py loaddata datadump.json
我仍然得到通常的&#34; Widgetset不包含实现......&#34;错误,但widgetset编译器没有任何问题。当我有时间刷新所有内容并回顾该错误的许多其他原因时,它可能会这样做。