1

在开发环境中部署BPM 项目时,一切正常。但是,当尝试将项目移动到 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 数据中心
数据库:DB2 10.1
应用服务器:WAS 8.0.0.3 ND

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

  2. 成功安装在服务器中(为了在构建过程中不会出现 JDBC 问题)Worklight Studio Enterprise 5.0.5。

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

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

  5. 右键单击应用程序(BPMApp)并成功“构建所有并部署”。

  6. 打开http://internalIP:8080/console(基于开发码头的工作灯控制台)以查看应用程序是否已部署,并且确实显示在列表中(应用程序和适配器)。

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

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

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

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

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

    publicWorkLightHostname=Worklight 服务器的操作主机名 publicWorkLightProtocol=http publicWorkLightPort=9082 publicWorkLightContext=/worklight 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}

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

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

  13. 随着.war上传(上下文根BPMWorklight)我们进入浏览器http://internalIP:9082/BPMWorklight/console/#catalog 并上传BPMApp-all.wlapp(我们不上传其他三个iPhone,android或common,只是-all.wlapp)上传成功.

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

4

1 回答 1

2

请在此处查看我的答案:使用 Worklight Console 部署应用程序失败:“无法部署应用程序 <appName>.wlapp”。:错误

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

此外,请确保:

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

    • 在 application-descriptor.xml 中
    • 在 worklight.properties 中
    • .war 文件的名称
  2. 您已删除以前由 WAS 上的 Worklight 安装默认安装的 .war

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

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

于 2013-05-22T14:59:09.587 回答