Vaadin将我的widgetset的名称加倍

时间:2014-02-20 15:22:33

标签: java maven vaadin

我在文件夹src/main/resources/CustomWidgetset中有一个带有自定义widgetset的Maven Vaadin项目。但是,当我执行mvn -Pcompile-widgetset package时,widgetset以某种方式结束于src/main/webapp/VAADIN/widgetsets/CustomWidgetset.CustomWidgetset(CustomWidgetset两次,中间带有“。”)然后无法找到它:

Information: Requested resource [VAADIN/widgetsets/CustomWidgetset/CustomWidgetset.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.

你能告诉我,完全我必须把我的widgetset放到100%被识别,编译并在以后找到?

解决方案 我发现,我有一个错误的参数名称,它现在通过替换

起作用
<param-name>org.mypackage.CustomWidgetset</param-name>

<param-name>widgetset</param-name>

虽然我不明白为什么没有抛出错误。

P.S。 这还不够,我还必须将src/main/resources/CustomWidgetset/CustomWidgetset.gwt.xml移到src/main/resources/CustomWidgetset.gwt.xml。显然,小部件集不应该有自己的文件夹,因此所有小部件集都直接驻留在包中。

1 个答案:

答案 0 :(得分:1)

遵循Vaadin的标准Maven原型,widgetset的正确位置是编译它时结束的文件夹 - src/main/webapp/VAADIN/widgetsets。我不知道你为什么在src/main/resources中拥有它。

编译的widgetset的名称取决于GWT模块描述符的名称。这是项目中某处的.gwt.xml文件。它应该在您的情况下命名为CustomWidgetset.gwt.xml,但出于某种原因它可能是CustomWidgetset.CustomWidgetset.gwt.xml吗?

接下来,Vaadin试图找到已编译的widgetset。它将在servlet描述符中查找一个参数,以查看它应该使用哪个widgetset。

如果您使用Servlet API 2.X,那么您将拥有webapp/WEB-INF下的web.xml文件,并且您将找到该文件

<init-param>
<param-name>widgetset</param-name>
<param-value>com.example.CustomWidgetset.CustomWidgetset</param-value>
</init-param>

如果您使用Servlet API 3.0,那么您的UI类将具有如下所示的servlet定义。

@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = AppUI.class, widgetset = "com.example.CustomWidgetset.CustomWidgetset")
public static class Servlet extends VaadinServlet {
}

要么是2.X或3.0,治愈方法是相同的 - 从中​​移除额外的.CustomWidgetset