我用eclipse创建了一个gwt项目,当我在调试模式下尝试这个项目时(使用GWT的服务器),它可以工作。
但是当我尝试部署apache tomcat服务器时,显示以下错误消息:
localhost:8080页面说: GWT模块'gwtfileupload'可能需要(重新)编译
我使用本教程完成部署: https://wiki.auckland.ac.nz/display/BeSTGRID/Deploying+GWT+to+Tomcat+in+Eclipse
这是“warbuilder.xml”:
<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>
这是项目树
| gwtfileupload
| -src
| --- COM
| ----- HSN
| -------演示
| --------- gwtfileupload
| -----------客户
| ------------------- GWTFileUpload.java
| -----------服务器
| ------------------- FileUploadServlet.java
| -war
| --- gwtfileupload.css
| --- gwtfileupload.html
| --- WEB-INF
| ----- web.xml中
| ----- LIB
| ---------公地文件上传-1.2.1.jar
| --------- GWT-的servlet.jar
| ---------公地-IO-1.4.jar
这是战争文件树
| -gwtfileupload.html
| -gwtfileupload.css
| -META-INF
| --- MANIFEST.MF
| -WEB-INF
| --- web.xml中
| --- LIB
| ------公地文件上传-1.2.1.jar
| ------ GWT-的servlet.jar
| ------公地IO-1.4.jar
| ------ gwtfileupload.jar
| -gwtfileupload
| --- clear.cache.gif
| --- gwtfileupload.nocache.js
| --- hosted.html
| --- GWT
| -----标准
| -------图像
| --------- IE6
你能帮我解决这个问题吗?
答案 0 :(得分:3)
清除浏览器缓存。
答案 1 :(得分:1)
查看“战争文件树”,没有 .cache。文件。看起来你没有GWT-编译你的项目!
参见https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#DevGuideProdMode
您必须在Ant文件中使用java
任务调用编译器。
答案 2 :(得分:0)
开发模式将.nocache.js
文件替换为发出该错误的副本。它至少在以开发模式启动页面时执行此操作,并且可能在开发模式启动时(我没有准确确定何时发生这种情况,只根据我过去看到的情况进行报告)。它只替换它被告知用于战争的目录中的副本,因此如果你被部署到另一个servlet容器,它不应该受到影响。
防止这种情况的最佳方法是在将Java编译为JS后不启动或使用开发模式,而只从像tomcat这样的servlet容器运行应用程序。如果开始编译时dev模式已经运行,这应该不是问题,但是不要加载以gwt.codesvr=localhost:9997
结尾的任何url,因为这会导致dev模式覆盖.nocache.js
文件试。