在 Worklight 中部署 Worklight 适配器失败

Posted

技术标签:

【中文标题】在 Worklight 中部署 Worklight 适配器失败【英文标题】:Failed to deploy worklight adapter in Worklight 【发布时间】:2013-05-22 04:56:53 【问题描述】:

在开发环境中部署BPM project 时,一切正常。但是,当尝试将项目移动到 WAS 应用服务器时,适配器部署失败(.war 和 .wlapp 部署成功通过):

Failed to deploy adapter 'BPMAdapter.adapter'. : Procedure 'getRest' in adapter 'BPMAdapter' requires security test 'BPMAdapter-securityTest' which is not defined in authenticationConfig.xml.

我们已经验证了 authenticationConfig.xml 中存在安全测试,这是测试的一部分,所以它实际上是存在的:

<securityTests>
    <customSecurityTest name="BPMAdapter-securityTest">
        <test isInternalUserID="true" realm="BPMAuthRealm"/>
    </customSecurityTest>
    <webSecurityTest name="BPMApp-web-securityTest">
        <testUser realm="BPMAuthRealm"/>
    </webSecurityTest>
    <mobileSecurityTest name="BPMApp-strong-mobile-securityTest">
        <testUser realm="BPMAuthRealm"/>
        <testDeviceId provisioningType="none"/>
    </mobileSecurityTest>
    <mobileSecurityTest name="BPMApp-mobile-securityTest">
        <testUser realm="BPMAuthRealm"/>
    </mobileSecurityTest>
</securityTests>

这些是我们采取的步骤:

测试服务器:Windows 2008 R2 Datacenter 数据库:DB2 10.1 应用服务器:WAS 8.0.0.3 ND

    成功安装了带有 DB2 数据库的 Worklight Server Enterprise 5.0.5。 (Worklight 工作于:http://internal:9082

    已成功安装在服务器中(为了在构建期间不会出现 JDBC 问题)Worklight Studio Enterprise 5.0.5。

    已将项目导入 Studio 内的新工作区。

    已成功部署工作灯适配器 BPMAdapter.xml。

    右击应用(BPMApp),“Build All and Deploy”成功。

    打开http://internalIP:8080/console(基于Development Jetty 的worklight 控制台)查看应用程序是否已部署,并且确实显示在列表中(应用程序和适配器)。

    使用“预览作为公共资源”进行测试,以验证应用程序是否正常工作,成功。

    现在我们继续对 WAS 部署所需的文件进行调整:

    将 application-descriptor.xml 文件中的 http://$local.IPAddress:8080http://internalIP:9082/worklight(此示例显示相同的方法 http://goo.gl/xbynL)

    此时我们打开 bin 目录并将所有 *.wlapp 文件和 BPMAdapter.adapter 文件复制到桌面的一个文件夹中。

    现在我们在 worklight.properties 文件中进行更改:

    publicWorkLightHostname=worklight 服务器的操作主机名 公共工作灯协议=http 公共工作灯端口=9082 publicWorkLightContext=/工作灯 wl.db.jndi.name=jdbc/WorklightDS wl.db.type=DB2 wl.db.url=jdbc:db2:Worklight wl.db.username=wluser wl.db.password=正确密码 wl.reports.db.jndi.name=jdbc/WorklightReportsDS wl.reports.db.type=$wl.db.type wl.reports.db.url=$wl.db.url wl.reports.db.username=$wl.db.username wl.reports.db.password=$wl.db.password

    保存 worklight.properties 并立即重新生成 *.war,我们将 *.war 复制到部署文件夹以供稍后上传到 WAS。

    根据以下内容在 WAS 中创建企业应用程序:(WL 5.0.5 的信息中心 - 将自定义 .war 文件部署到 WebSphere Application Server 完整配置文件)确保在“类加载器顺序”窗格中,单击类首先加载本地类加载器(最后一个父级),然后在模块部分的“类加载器顺序”窗格中,单击首先加载本地类加载器的类(最后一个父级)。 WAR上传启动成功。

    上传 .war(上下文根 BPMWorklight)后,我们在浏览器中转到 http://internalIP:9082/BPMWorklight/console/#catalog 并上传BPMApp-all.wlapp(其他三个iPhone,android或common我们不上传,只上传-all.wlapp)上传成功。

    我们继续上传http://internalIP:9082/BPMWorklight/console/#catalog 适配器BPMAdapter.adapter,我们收到错误“无法部署适配器'BPMAdapter.adapter'。:适配器'BPMAdapter'中的过程'getRest'需要在authenticationConfig.xml中未定义的安全测试'BPMAdapter-securityTest'。”

【问题讨论】:

确保更新后的 .war 文件中的 authenticationConfig.xml 确实有所谓的缺少的 securityTest。 伊丹,是的!刚刚验证了测试在部署的 .war 中,我们应该寻找其他东西吗?谢谢! 【参考方案1】:

在这里查看我的答案:Failed deploying application using Worklight Console: "Failed to deploy application <appName>.wlapp'. : ERROR

确保安装在 WebSphere 上的 Worklight Server 版本与用于创建 .war、.wlapps 和 .adapter 文件的 Worklight Studio Eclipse 插件的版本相匹配。

此外,请确保:

    您对所有人使用相同的上下文根(“BPMWorklight”):

    在 application-descriptor.xml 中 在 worklight.properties 中 .war 文件的名称

    您已删除以前由 WAS 上的 Worklight 安装默认安装的 .war

我感觉您部署了多个 Worklight .war 文件,并且它们以某种方式使用了错误的 .war,因此找不到/使用正确的 authenticationConfig.xml,这可以解释找不到 securityTest。

在 Worklight 5.0.x 中,一次应该只有 1 个 Worklight .war 文件。

【讨论】:

Idan,我们有插件版本 5.0.5.1 和服务器版本 5.0.5(我们知道没有 5.0.5.1 服务器)唯一的事情就是将服务器和插件都升级到 5.0.6 但是我们仍然无法这样做,因为我们仍在使用以前版本的 Cordova。 Idan,我们能够找到带有 MAC IWS 的插件版本 5.0.5。我们重建了.war,在服务器中重新安装并重新加载了 BPMApp-all.wlapp,wlapp 上传正常。当我们尝试上传 .adapter 时,我们现在简单地得到:“无法部署适配器'BPMAdapter.adapter'。:错误”您的想法非常需要并且非常感谢!再次感谢! 此错误与我在答案列表中描述的错误完全相同。您必须确保 Worklight Server 和 Worklight Studio 的版本相同。 Idan 这些是我们的版本: 服务器版本:5.0.5.20121130-0919 WorklightStudio 插件:5.0.5.20121130-0158 它们是否相同?我猜他们是……你能确认一下吗? 伊丹,终于!!您的所有预感都是对的……我唯一不清楚的是,安装在 WAS 中的 Worklight Console 应用程序实际上是另一个版本的 worklight.war,这就是最终错误的根源。现在一切正常...现在开始上传 .ipa!....非常感谢 Idan 的帮助和指导!!

以上是关于在 Worklight 中部署 Worklight 适配器失败的主要内容,如果未能解决你的问题,请参考以下文章

Worklight 适配器部署

在 Worklight 中构建和部署失败并出现 openjpa 致命一般错误

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

IBM Worklight - Worklight 可以部署到现有的 WAS 服务器吗?

Worklight 6.0 - 如何使用 dojo 1.9 和 worklight 6.0 为 android 2.2 创建和部署 dojo 启用 worklight 混合应用程序

Worklight 6.2 wlapp 部署给出错误 java 堆空间