0

我正在使用名为 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 作为我的构建脚本。你能帮我完成编译插件的步骤吗?

谢谢。

4

2 回答 2

0

它很长,但迟到总比永远好。

我创建了一个依赖于我的来源的新任务。

<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- 需要编译的小部件集 - 类似于com.vaadin.mywidgetset
webroot- 放置已编译源的 Web 目录的根目录,在 Eclipse 中,它将是WebContent目录
sources- 对源目录的引用
workdir- 临时放置已处理文件的临时目录

于 2014-12-03T09:49:27.127 回答
0

我想你需要调试这个问题。您对小部件集编译有多熟悉?您是否正确设置了 AppWidgetSet.gwt.xml?您是否从 src 目录中清除了所有以前的 widgetset 中间工件?

(这在过去给我带来了痛苦,尤其是从 Vaadin 6 迁移到 7 时。我有一个特定的 maven clean 目标,我在移动 Vaadin 版本时取消注释,以便删除/src/main/webapp/VAADIN/widgetsets/src/main/webapp/VAADIN/gwt-unitCache目录。否则它不会完全重新编译小部件集.)

最后,您是否运行了特定于 Ant 的命令来重新编译 Vaadin 小部件集?

我讨厌用这种类型的答案来回答,但是您使用 Ant 是否有特定的原因?如果没有,您可以使用以下说明生成 Vaadin 7 项目时创建的 maven pom:来自 wiki

将以下插件命令添加到 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你会没事的。

于 2013-03-22T16:50:27.397 回答