我最近安装了最新的Worklight修订包更新,现在正在运行v6.2.0.01.20141027-1531 从那以后,我注意到在WL服务器上有关我的公共环境部署的阻塞错误。
现在,当我部署我的应用程序(“运行为>构建所有环境”,然后“运行Worklight开发服务器”)时,在“预览为公共资源”或iPad / Android移动Web环境中运行我的应用程序给我以下Javascript错误:
WL is not defined
当我检查源代码时,我意识到head标签中缺少“Worklight generated”Javascript源代码。我应该看到这样的事情:
<script>
// Define WL namespace.
var WL = WL ? WL : {};
/**
* WLClient configuration variables.
* Values are injected by the deployer that packs the gadget.
*/
WL.StaticAppProps = {
"APP_DISPLAY_NAME": "appname",
"APP_ID": "project",
"APP_SERVICES_URL": "\/project\/apps\/services\/",
"APP_VERSION": "1.0",
"ENVIRONMENT": "preview",
"LOGIN_DISPLAY_TYPE": "popup",
"LOGIN_POPUP_HEIGHT": 610,
"LOGIN_POPUP_WIDTH": 920,
"PREVIEW_ENVIRONMENT": "common",
"WORKLIGHT_PLATFORM_VERSION": "6.2.0.01.20141027-1531",
"WORKLIGHT_ROOT_URL": "\/project\/apps\/services\/api\/app\/common\/"
};
</script>
...但是在我的页面的源代码中没有这样的东西(这就是找不到WL的原因)。 此外,它不包括应该在构建阶段动态添加的worklight.js和wljq.js文件(据我所知)。我的index.html内容是“vanilla”,它解释了为什么没有效果。
所以我决定检查在构建阶段生成的bin存档。碰巧app-common.wlapp存档包含正确生成的源代码,其中包含所有Worklight生成的内容。看起来在部署步骤期间发生了错误。我试图在WL控制台中手动导入它,但遗憾的是它不能正常工作(结果相同)。
我无法重现创建新项目的问题,看起来只有在将Worklight更新到最新修订包版本后才会发生。因此,提供示例项目很复杂。
注意:一旦在实际设备上运行,一切正常。在我的案例中,只有共同的环境被打破。但是我的一位同事也注意到了其他环境的这个问题所以...如果我设法为其他环境重现它,我会告诉你的。
感谢您的帮助,请询问您是否需要我提供更多意见。
答案 0 :(得分:0)
您不需要做&#34;建立所有......&#34;然后&#34;继续...&#34;。这只是重复同样的步骤,因为&#34;在Worklight Development Server上运行&#34;表示&#34;构建项目工件(.wlapp文件,.war文件),然后部署它们&#34;。
vanilla index.html包含对initoptions.js,main.js,main.css和messeages.js的引用。你的措辞有点令人困惑,关于预期的内容和预期的位置。
无论如何,请尝试以下方法:
打开Eclipse并尝试以下两个路径:
告诉我两者中哪一个失败了,如果有的话。