【问题标题】:IBM Worklight 6.1 - Project fails to initialize because the project database schema is from version N/AIBM Worklight 6.1 - 项目无法初始化,因为项目数据库模式来自版本 N/A
【发布时间】:2014-04-14 12:27:21
【问题描述】:

我尝试将 .war 文件部署到应用程序服务器时收到以下错误消息:

错误 500:javax.servlet.ServletException:Worklight 控制台 初始化失败。记录异常:java.lang.RuntimeException: FWLSE0206E: 项目 /rmbp 未能初始化,因为 数据源的项目数据库架构 jdbc:db2://192.168.1.80:50001/APPCNTR 来自版本 N/A,即 从版本 6.1.0.00.20131126-0630 开始,服务器不支持。采用 Worklight ant 任务升级项目数据库模式。 [项目人民币]

我已经做了一些研究并向 IBM 询问了我们的问题,并查看了以下类似问题:IBM Worklight 6.1 - Unable to initialize the project due to DB2 error

【问题讨论】:

    标签: db2 ibm-mobilefirst worklight-server worklight-appcenter


    【解决方案1】:

    错误信息对我来说很清楚。您似乎升级了 Worklight 安装,但没有升级用于 Application Center 的数据库方案。

    您需要咨询 IBM Worklight 信息中心。

    你没有提到你是如何将你的安装升级到 v6.1.0 的,也没有提到你做了什么。因此,请查看以下有关数据库升级的主题,因为如上所述,您的 APPCNTR 数据库的 DB2 数据库方案似乎没有发生:

    【讨论】:

    • 如何查看 APPCNTR 数据库架构版本?从我在工作灯安装中的 applicationcentre 文件夹中看到的脚本中,有 3 个版本可用于 DB2 升级。
    • 在升级到 6.1 之前,您之前的 Worklight 版本是什么?使用正确的升级脚本。
    • 仅工作灯还是工作灯服务器?如果工作灯服务器,我从不升级。这是 Worklight Server 6.1 的全新安装。
    • 您是安装了Application Center,还是安装了Worklight Server?您可能使用了错误的脚本。
    • 你指的是什么脚本?我只安装了Worklight server,之后我在Worklight的安装目录中查看,发现ApplicationCenter文件夹,里面还有用于数据库升级的sql脚本。顺便说一句,我已经运行了“upgrade-appcenter-60-61-db2.sql”脚本,并且收到错误消息,抱怨 APPLINK 重复表的 SQL 状态 = 42711。
    【解决方案2】:

    您似乎尝试将 Worklight 运行时安装到 APPCNTR 数据库。此数据库用于 Application Center,与称为 WRKLGHT 的 Worklight 运行时数据库无关。

    如何安装 Worklight 战争文件:使用服务器配置工具、部署 ant 脚本(可在 Worklight 安装的 configuration-samples 目录中找到)还是手动安装?

    请参阅 http://pic.dhe.ibm.com/infocenter/wrklight/v6r1m0/index.jsp?topic=/com.ibm.worklight.deploy.doc/devref/r_ant_tasks_configure_dbs.html,其中解释了如何配置 Worklight 运行时数据库和部署 Worklight 运行时 war 文件。

    【讨论】:

    • 您好 Bruno,我刚刚完成了您提供的步骤,即使用 ant 为我的 Worklight 应用程序创建一个新数据库。我的新数据库名称名为“PROD”,在 WL60 和 WL60REP 中有 2 个模式。但是,即使在我将 JDBC 指向“PROD”数据库之后,该错误仍然存​​在并出现相同的错误 (jdbc:db2://192.168.1.80:50001/PROD)。
    • 关于您上面的陈述,我有兴趣了解“Worklight 运行时数据库”。我对将应用程序部署到 Websphere Application Server 没有太多想法,这是我的第一次。我要部署的应用程序是一个包含应用程序控制台的 war 文件,该控制台将在以后管理所有移动应用程序(我不太确定此应用程序是否需要数据库连接,因为我通常在集成的开发 Worklight 服务器中运行它在我的本地 PC 中没有任何专用数据库的 Eclipse)
    • 因此,当您在 WAS/DB2 上运行时,您必须在编辑并修改不同属性后运行 2 次 ant 脚本“configure-was-db2.xml”:ant -f configure-was- db2.xml 数据库,然后安装 ant -f configure-was-db2.xml。第一次执行将创建 Worklight 运行时数据库的所有表,第二次将在 WAS 中部署您的运行时 war 文件
    【解决方案3】:

    您是否在 Websphere Application Server 中创建了 jdbc 连接? WAR 文件中的应用程序需要它来连接数据库。

    如果你已经完成了,你可以检查你的 WAR 文件并在 WEB-INF/ 文件夹中查找 web.xml 文件。就我而言,我在文件中发现了一个硬编码的 jdbc,例如:

    <resource-ref>
      <description>Worklight Server Database</description>
      <res-ref-name>jdbc/WorklightDS</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
    
    <resource-ref>
      <description>Reports Database</description>
      <res-ref-name>jdbc/WorklightReportsDS</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
    

    您可以将这些硬编码文件重命名为与您在 WAS 中创建的 jdbc 相同的名称。


    对于数据库问题,您可以点击此链接使用 ant 创建数据库。

    http://pic.dhe.ibm.com/infocenter/wrklight/v6r1m0/index.jsp?topic=/com.ibm.worklight.deploy.doc/devref/r_ant_tasks_configure_dbs.html

    如果您按照第一个 ant 脚本创建 DB2,它将有两个不同的数据库,如果您还没有这样做,则需要为此行创建新用户。 因为如您所见,在 xml 脚本中,创建 WRKLGHT 数据库需要用户名和密码。例如:

    <db2 database="WRKLGHT" server="proddb.example.com"
           user="wl6admin" password="wl6pass">
    

    如果您为 DB2 连接使用非默认端口,您可以在服务器参数之后添加端口号参数。 例如:

    port="50001"


    对于用户创建,你可以点击这个链接:

    http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.qb.server.doc%2Fdoc%2Ft0006742.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 2020-12-21
      • 1970-01-01
      相关资源
      最近更新 更多