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。