gpt4 book ai didi

java - Vaadin 将我的小部件集的名称加倍

转载 作者:行者123 更新时间:2023-12-01 13:23:29 29 4
gpt4 key购买 nike

我有一个 Maven Vaadin 项目,其文件夹 src/main/resources/CustomWidgetset 中有一个自定义小部件集。但是,当我执行 mvn -Pcompile-widgetset package 时,小部件集不知何故最终出现在 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.

你能告诉我,我必须把我的小部件集放在哪里确切,这样它才能在以后得到 100% 的识别、编译和发现吗?

解决方案我发现,我的参数名称错误,现在通过替换它可以工作

<param-name>org.mypackage.CustomWidgetset</param-name>

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

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

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

最佳答案

遵循 Vaadin 的标准 Maven 原型(prototype),小部件集的正确位置是编译时它最终所在的文件夹 - src/main/webapp/VAADIN/widgetsets。我不知道为什么你把它放在 src/main/resources 中。

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

然后进行下一步,Vaadin 尝试找到您编译的小部件集。它将在 servlet 描述符中查找参数,以查看应使用哪个小部件集。

如果您使用 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

关于java - Vaadin 将我的小部件集的名称加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21912078/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com