Vaadin:Widget set没有加载。

我能够将Vaadin模块集成到基于Spring的应用程序中。 集成后,我想运行一个gantt-charts演示,这是Vaadin的附加组件,并在github上找到它。 在文件夹中,有一个演示项目。 一切都很好,除了我有widgetset的问题。

问题的屏幕截图:

窗口小部件设置未加载

另外,我得到一个不可序列化的错误:

Nov 18, 2015 3:16:48 PM org.apache.catalina.session.StandardManager startInternal SEVERE: Exception loading sessions from persistent storage java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.journaldev.spring.Vaadin.Util$5 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1355) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) 

UI代码:

 @Theme("demo") @SpringUI @SuppressWarnings("serial") public class MyVaadinUI extends UI { @WebServlet(value = "/testvaadin", asyncSupported = true) @VaadinServletConfiguration(productionMode = false, ui = MyVaadinUI.class, widgetset = "org.tltv.gantt.demo.DemoWidgetSet") public static class Servlet extends SpringVaadinServlet { } // Code for gaant-chart taken from demo, code too big and not important //for error // Pastebin link : http://pastebin.com/mi1ZhH30 } 

POM.xml:

vaadin-addons http://maven.vaadin.com/vaadin-addons

   com.vaadin vaadin-spring 1.0.0   com.vaadin vaadin-themes ${vaadin.version}   com.vaadin vaadin-client-compiled ${vaadin.version}   com.vaadin vaadin-push ${vaadin.version}   org.tltv.gantt gantt-addon 0.9.0  

web.xml:

   vaadin-spring /*   cometd org.cometd.server.CometDServlet  timeout 300000  2 true  

我究竟做错了什么? 请告诉我。 非常感谢。 🙂

尝试运行mvn clean install来编译widgetset。 如果您不想使用命令行,请右键单击您的proyect, Run As> Maven install

您还可以在eclipse中编译您的widgetset。 打开您的widgetset文件,然后单击eclipse菜单中的“gear”符号。

您需要vaadin客户端编译器才能编译您的widgetset。 将以下内容添加到您的pom.xml

  com.vaadin vaadin-client-compiler ${vaadin.version} provided  

并运行mvn vaadin:compile来编译客户端widgetset。

编辑:在您的构建路径中还有一个名为com.journaldev.demoset.gwt.xml的文件:

        

并更改带注释的servlet以从该文件中读取widgetset。

 @WebServlet(value = "/testvaadin", asyncSupported = true) @VaadinServletConfiguration(productionMode = false, ui = MyVaadinUI.class, widgetset = "com.journaldev.demoset") public static class Servlet extends SpringVaadinServlet { } 

有了它,您将定义自己的widgetset,其中包括甘特图项目中定义的widgetset。