我正在使用添加名为ICEPush的异步数据推送到客户端。顺便说一句,我用的是vaadin 7。每当我打开页面时,它都会抛出以下错误
Widgetset does not contain implementation for org.vaadin.artur.icepush.ICEPush. Check its component connector's @Connect mapping, widgetsets GWT module description file and re-compile your widgetset. In case you have downloaded a vaadin add-on package, you might want to refer to add-on instructions.
我使用ant作为我的构建脚本。你能有人帮我编译插件的步骤吗?
谢谢。
我想你需要调试这个问题。你对widgets set编译有多熟悉?您是否正确设置了AppWidgetSet.gwt.xml ?您是否从src目录中清除了所有以前的小部件集中间构件?
(这在过去给我带来了痛苦,特别是当从Vaadin 6移动到7时。我有一个特定的maven清理目标,在移动Vaadin版本时取消注释,以便它删除/src/main/webapp/VAADIN/widgetsets
和/src/main/webapp/VAADIN/gwt-unitCache
目录。否则它不会完全重新编译这个小部件集。)
最后,您是否运行了特定于ant的命令来重新编译Vaadin小部件集?
我讨厌用这种类型的答案来回答,但是你使用Ant有什么特殊的原因吗?如果没有,您可以使用在生成Vaadin 7项目时创建的maven pom,使用以下说明:
将以下插件命令添加到pom.xml中:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/src/main/webapp/VAADIN/widgetsets</directory>
<directory>${basedir}/src/main/webapp/VAADIN/gwt-unitCache</directory>
</fileset>
</filesets>
</configuration>
</plugin>
然后运行:mvn clean vaadin:clean package
,你会没事的
很长,但迟做总比不做好。
我创建了一个新任务,它依赖于我的源代码。
<target name="build-widgetset" if="widgetset">
<java classname="com.google.gwt.dev.Compiler" failonerror="yes"
fork="yes">
<arg value="-war" />
<arg value="${webroot}/VAADIN/widgetsets" />
<arg value="${widgetset}" />
<arg value="-logLevel" />
<arg value="DEBUG" />
<arg value="-strict" />
<jvmarg value="-Xmx1024M" />
<jvmarg value="-Djava.awt.headless=true" />
<classpath>
<pathelement path="${sources}" />
<pathelement path="${workdir}" />
<path refid="classpath" />
</classpath>
<sysproperty key="vFailIfNotSerializable" value="true" />
</java>
<!-- cleanup -->
<delete dir="${webroot}/VAADIN/gwt-unitCache" />
<delete dir="${webroot}/VAADIN/widgetsets/WEB-INF" />
</target>
Classpath
-所有Vaadin库的类路径widgetset
—需要编译的widget集—类似于com.vaadin.mywidgetset
webroot
- web目录的根目录,在Eclipse中,它将是WebContent
目录sources
-对源目录的引用workdir
-临时目录,用于临时放置处理过的文件