GWT模块';xyz';可能需要(重新)编译

GWT模块';xyz';可能需要(重新)编译,gwt,tomcat,ant,Gwt,Tomcat,Ant,可能重复: 我已经用eclipse创建了一个gwt项目,当我在调试模式下(使用gwt的服务器)尝试这个项目时,它可以工作 但当我尝试部署apache tomcat服务器时,显示以下错误消息: localhost:8080上的页面显示: 可能需要(重新)编译GWT模块“gwtfileupload” 我使用本教程完成了部署: 下面是“warbuilder.xml”: 这是项目树 | gwtfileupload |-src |--com |------hsn |----演示 |-----

可能重复:

我已经用eclipse创建了一个gwt项目,当我在调试模式下(使用gwt的服务器)尝试这个项目时,它可以工作

但当我尝试部署apache tomcat服务器时,显示以下错误消息:

localhost:8080上的页面显示: 可能需要(重新)编译GWT模块“gwtfileupload”

我使用本教程完成了部署:


下面是“warbuilder.xml”:


这是项目树
| gwtfileupload
|-src
|--com
|------hsn
|----演示
|-----------gwtfileupload
|---------客户
|--------------GWTFileUpload.java
|---------服务器
|-------------------FileUploadServlet.java
|-战争
|--gwtfileupload.css
|--gwtfileupload.html
|--WEB-INF
|----web.xml
|----lib
|-----------commons-fileupload-1.2.1.jar
|-----------gwt servlet.jar
|------commons-io-1.4.jar

这是war文件树
|-gwtfileupload.html
|-gwtfileupload.css
|-META-INF
|---MANIFEST.MF
|-WEB-INF
|--web.xml
|--lib
|----commons-fileupload-1.2.1.jar
|----gwt servlet.jar
|------commons-io-1.4.jar
|----gwtfileupload.jar
|-gwtfileupload
|---clear.cache.gif
|--gwtfileupload.nocache.js
|---hosted.html
|--gwt
|----标准
|------图像
|-----------ie6


您能帮我解决这个问题吗?

清除浏览器缓存。清除浏览器缓存。开发模式将
.nocache.js
文件替换为发出该错误的副本。它至少在以开发模式启动页面时会这样做,可能在开发模式启动时也会这样做(我没有确切说明何时会发生这种情况,只是根据我过去看到的案例进行报告)。它只替换它被告知用于war的目录中的副本,因此如果您部署到另一个servlet容器,它不应该受到影响


防止这种情况的最好方法是在将Java编译成JS后不要启动或使用开发模式,而只从类似tomcat的servlet容器中运行应用程序。如果在开始编译时开发模式已经在运行,这应该不是问题,但是不要加载任何以
gwt.codesvr=localhost:9997结尾的url,因为这将导致开发模式再次覆盖
.nocache.js
文件。

开发模式将
.nocache.js
文件替换为发出该错误的副本。它至少在以开发模式启动页面时会这样做,可能在开发模式启动时也会这样做(我没有确切说明何时会发生这种情况,只是根据我过去看到的案例进行报告)。它只替换它被告知用于war的目录中的副本,因此如果您部署到另一个servlet容器,它不应该受到影响

防止这种情况的最好方法是在将Java编译成JS后不要启动或使用开发模式,而只从类似tomcat的servlet容器中运行应用程序。如果在开始编译时开发模式已经在运行,这应该不是问题,但是不要加载任何以
gwt.codesvr=localhost:9997结尾的url,因为这将导致开发模式再次覆盖
.nocache.js
文件。

查看“war文件树”,没有.cache。文件看起来你没有编译你的项目

看 您必须在Ant文件中使用
java
任务调用编译器。

查看“war文件树”,没有.cache。文件看起来你没有编译你的项目


您必须在Ant文件中使用
java
任务调用编译器。

这是一个失败的原因。不知道从哪里开始告诉你。您下载的项目遵循maven依赖关系和部署模式。你必须学习maven,这是一个失败的事业。不知道从哪里开始告诉你。您下载的项目遵循maven依赖关系和部署模式。您必须了解maven.DevMode将现有nocache.js的日期与gwt-dev.jar的日期进行比较,如果它比gwt-dev旧,则会生成一个新文件。看,嗯,想知道我看到了什么-我在多台机器/操作系统上看到过它,所有这些机器/操作系统都使用Eclipse 3.7、GPE 2.5、gwt 2.4.0和maven,因此从
.m2/
读取gwt-dev。编辑:是的,构建到
target/project-vers/
。没错,在较新的版本中,这一点发生了变化:如果nocache.js比gwt.xml旧,它将替换nocache.js。See和DevMode将现有nocache.js的日期与gwt-dev.jar的日期进行比较,如果它比gwt-dev旧,则生成一个新文件。See-Hmm,想知道我当时看到了什么-我在多台机器/操作系统上看到过它,所有这些机器/操作系统都使用Eclipse3.7、GPE2.5、GWT2.4.0和maven,因此从
.m2/
读取gwt-dev。编辑:是的,构建到
target/project-vers/
。没错,在较新的版本中,这一点发生了变化:如果nocache.js比gwt.xml旧,它将替换nocache.js。看到和
<target name="default" depends="buildwar,deploy"></target>

<target name="buildwar">
    <war basedir="war" destfile="gwtfileupload.war" webxml="war/WEB-INF/web.xml">
        <exclude name="WEB-INF/**" />
        <webinf dir="war/WEB-INF/">
            <include name="**/*.jar" />
        </webinf>
    </war>
</target>

<target name="deploy">
    <copy file="gwtfileupload.war" todir="." />
</target>