IBM Worklight 6.0 - .war 文件部署失败

Posted

技术标签:

【中文标题】IBM Worklight 6.0 - .war 文件部署失败【英文标题】:IBM Worklight 6.0 - .war file deployment fails 【发布时间】:2013-07-05 12:50:50 【问题描述】:

我已经在 linux 服务器和 oracle 数据库上安装了 IBM Worklight v6.0 Consumer Edition 和 WAS Liberty Profile 8.5.5。

我使用 IBM Worklight Studio v6.0 构建了一个 .war,并将其部署在我的 Liberty 应用程序目录 /worklightServer/apps 中。 然后我用以下内容更改了 server.xml:

<!-- Configuration for Test app -->
<application id="TestApp" name="TestApp" location="TestProjectWL6.war" type="war">
  <classloader delegation="parentLast">
    <commonLibrary>
        <fileset dir="$shared.resource.dir/lib" includes="worklight-jee-library.jar"/>
    </commonLibrary>
  </classloader>
</application>

由于messages.log中出现以下错误,.war 文件未部署:

[7/5/13 14:42:47:289 CEST] 00000012 m.ibm.ws.app.manager.internal.statemachine.ResolveFileAction E CWWKZ0021E: 位于 TestProjectWL6.war 的应用程序 TestApp 是 无效。

如何使 .war 有效?我关注了 IBM Worklight 和 WebSphere Information Centers 关于如何部署的信息,但它不起作用。

【问题讨论】:

【参考方案1】:

错误标识符CWWKZ0021E 表明“指定位置的存档或目录”存在问题。我会确保

存在 usr/servers/worklightServer/apps/TestProjectWL6.war 文件(文件名大小写很重要), 它实际上是一个文件,而不是一个目录。 它的访问权限不会阻止 Liberty 服务器进程读取它。使用ls -l .../usr/servers/worklightServer/apps/TestProjectWL6.war查看。 它没有被截断(即unzip -l .../usr/servers/worklightServer/apps/TestProjectWL6.war 给出了其内容的合理列表)。 您修改的 server.xml 确实是 usr/servers/worklightServer/ 中的那个,而不是属于其他服务器的那个。

这一切听起来很愚蠢,但是在执行手动应用程序服务器配置时,这些事情偶尔会出错。通过 Ant 任务&lt;configureApplicationServer&gt; 配置更可靠。

【讨论】:

该文件以正确的大小写存在,它确实是一个文件,chmod 是 777,它没有被截断(正确的 zip 文件)并且 server.xml 是那个...【参考方案2】:

您是如何安装 IBM Worklight v6.0 的? 您是如何部署项目的 .war 文件的?

您是否使用了在使用 IBM Worklight Installation Manager 时复制到磁盘的所提供的 Ant 脚本?

在 IBM Worklight v6.0 中安装 Worklight Server 以及部署 .war 文件的过程与在 v5 中大不相同。

确保您遵循更新的文档:

Installing Worklight Server Deploying an IBM Worklight project

我敢打赌,您没有使用 Ant 脚本来部署 .war 文件;您很可能指向了 Worklight JEE .jar 文件的错误位置。您将需要更正路径。

我建议使用提供的 Ant 脚本。

【讨论】:

我已经使用带有响应文件的 imcl 命令安装了 IBM Worklight v6.0,并且 ant 脚本的使用是自动的(安装后过程)。我遵循了信息中心的文档,但没有部署战争...... 您提到您手动部署了 .war 文件。这不是这样做的方法,您应该使用提供的 Ant 脚本。您是否关注了我链接到的相同信息中心页面? 我已经关注了您链接的页面,我的选择是按照“部署项目 WAR 文件并手动配置应用程序服务器”一节中所述进行手动部署。【参考方案3】:

我已经清理了我所有的环境:删除 server.xml 中的所有应用程序配置(包括随 worklight 服务器安装一起安装的应用程序中心控制台),从应用程序和 dropins 目录中删除所有战争。

然后我用ant任务构建,现在可以了。

【讨论】:

很高兴听到你成功了;请将您的答案标记为您可以回答。谢谢。

以上是关于IBM Worklight 6.0 - .war 文件部署失败的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0 - 内容根目录和本地 Worklight 服务器设置

IBM Worklight 6.0 - 访问 Worklight Server 时出错

IBM Worklight 6.0 - Worklight Starter Dojo 示例损坏?

IBM Worklight 6.0 - 如何将 Worklight 应用程序部署到 Worklight Server?

IBM Worklight 6.0 - 无法访问 Worklight 服务器

IBM Worklight 6.0 - 在以下期间发生内部错误:Worklight 应用程序构建器