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

我还得到了一个不可序列化的错误:
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](http://maven.vaadin.com/vaadin-addons)
<!--- Vaadin dependency -->
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-themes</artifactId>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client-compiled</artifactId>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-push</artifactId>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<groupId>org.tltv.gantt</groupId>
<artifactId>gantt-addon</artifactId>
<version>0.9.0</version>
</dependency>web.xml:
<servlet-mapping>
<servlet-name>vaadin-spring</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>cometd</servlet-name>
<servlet-class>org.cometd.server.CometDServlet</servlet-class>
<init-param>
<param-name>timeout</param-name>
<param-value>300000</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
<async-supported>true</async-supported>
</servlet>我做错了什么?请让我知道。非常感谢。:-)
发布于 2015-11-19 03:00:46
尝试运行mvn clean install来编译小部件集。如果你不想使用命令行,右击你的项目,Run As > Maven install。
您还可以在eclipse中编译小部件集。打开你的widgetset文件,点击eclipse菜单中的“齿轮”符号。
发布于 2015-11-19 03:53:49
您需要vaadin客户端编译器才能编译您的小部件集。将以下内容添加到您的pom.xml
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client-compiler</artifactId>
<version>${vaadin.version}</version>
<scope>provided</scope>
</dependency>然后运行mvn vaadin:compile编译您的客户端小部件集。
编辑:在构建路径中还有一个名为com.journaldev.demoset.gwt.xml的文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module>
<inherits name="com.vaadin.DefaultWidgetSet" />
<add-linker name="xsiframe" />
<inherits name="org.tltv.gantt.WidgetSet" />
</module>并将带注释的servlet更改为从该文件读取小部件集。
@WebServlet(value = "/testvaadin", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MyVaadinUI.class, widgetset = "com.journaldev.demoset")
public static class Servlet extends SpringVaadinServlet {
} 这样,您就定义了自己的小部件集,其中包括在甘特图项目中定义的小部件集。
https://stackoverflow.com/questions/33783130
复制相似问题