我正在向GAE部署应用程序。我在Eclipse中有一个项目设置,有三个独立的GWT模块,每个模块都有自己的HTML页面,入口点等。它们共享很多代码。
当我将应用程序部署到appengine时,两个模块工作正常。我可以完美地访问他们的HTML页面。第三个给我的错误是“gwt module'xyz'可能需要(重新)编译。”我曾尝试重新编译和重新部署两次,但没有用,也没有关于前进的想法。
关于这个问题的其他线程指向gwt.codeserver参数,实际上,如果我添加该参数,坏模块运行...但它似乎在开发模式下运行!如果这是事实,我有点沮丧,因为我不想向任何人提供开发模式代码。
任何建议都会受到欢迎 - 我的工作基本上完全停滞在这个问题上。
答案 0 :(得分:8)
我找到了自己的答案:在我的情况下,错误不是由于缺少 gwt.codesvr 参数引起的(就像在网上引用的所有其他情况一样)。相反,我在模块定义 gwt.xml 文件中添加的模块重命名属性导致混淆。我将重述整个故事,以防其他人了解更多。
这几天没有影响我,因为我觉得eclipse足够聪明,可以重新编译这两个文件。谁知道。我怀疑 gwt.codesvr 参数实际上是启用了这种模糊行为,从开发模式而不是从js文件加载代码。
最终,修复很简单:我更改了我的HTML文件,以便从 short / short.nocache.js 中提取js。 它奏效了! 哇噢!
答案 1 :(得分:2)
将这些行添加到XXX.gwt.xml文件对我有用:(GWT版本2.5.1)
<add-linker name="xsiframe" />
<set-configuration-property name="devModeRedirectEnabled"
value="true" />
<set-property name="compiler.useSourceMaps" value="true" />
答案 2 :(得分:1)
以下是抛出此消息的代码。
function B() {
var b = false;
try {
var c = Window.location.search;
return (c.indexOf("gwt.hosted=") != -1
|| (c.indexOf("gwt.codesvr=") != -1
|| Window.external && Window.external.gwtOnLoad))
&& c.indexOf("gwt.hybrid") == -1
} catch (a) {}
B = function () {
return b
};
return b
}
// and later, if B() returns false, show recompile error
if (!B()) {
try {
alert(Pb);
return;
}
...
}
因此,要防止编译消息
话虽这么说,当我没有这个问题时,这段代码不会编译到* .nocache.js文件中,所以这就是真正的bugaboo所在。
答案 3 :(得分:0)
我分两步解决了这个问题:
点击红色图标“GWT编译项目”
在eclipse右侧clik中 - &gt;作为Maven包运行