【问题标题】:problems deploying project in Worklight 5.0.6在 Worklight 5.0.6 中部署项目的问题
【发布时间】:2013-05-09 16:49:04
【问题描述】:

在带有 MySQL 5.6 的 Tomcat 7 上运行 Worklight 5.0.6

我删除了所有以前的数据库并让安装管理器重新创建它们。控制台运行良好,我可以上传 wlapp 和 adapetrs。但是,在部署 myproject.war 后,我每 5 秒收到以下错误:

SEVERE: Persistency data access problem
com.worklight.core.exceptions.PersistentDataAccessException:
Persistency data access problem at com.worklight.core.exceptions.DefaultExceptionHandler.handleException(DefaultExceptionHandler.java:50) at com.worklight.core.tasks.TaskThread.run(TaskThread.java:100)
Caused by:
org.springframework.dao.InvalidDataAccessApiUsageException: Can only perform operation while a transaction is active.;
nested exception is <openjpa-1.2.2-r422266:898935 nonfatal user error>
org.apache.openjpa.persistence.TransactionRequiredException: Can only perform operation while a transaction is active.

操作系统:Windows Server 2008 R2 标准版

数据库:APPCNTR、WLREPORT、WRKLGHT

context.xml 的内容

<Context>
<Resource name="jdbc/WorklightDS"
  auth="Container"
  type="javax.sql.DataSource"
  maxActive="100"
  maxIdle="30"
  maxWait="10000"
  username="worklight"
  password="***"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/WRKLGHT"/>
<Resource name="jdbc/WorklightReportsDS"
  auth="Container"
  type="javax.sql.DataSource"
  maxActive="100"
  maxIdle="30"
  maxWait="10000"
  username="worklight"
  password="***"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/WLREPORT"/>
<Resource name="jdbc/AppCenterDS"
  auth="Container"
  type="javax.sql.DataSource"
  maxActive="100"
  maxIdle="30"
  maxWait="10000"
  username="worklight"
  password="***"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/APPCNTR"/>
</Context>

Tomcat 的 web.xml

<resource-ref>
  <res-ref-name>jdbc/WorklightDS</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
  <res-ref-name>jdbc/WorklightReportsDS</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

worklight.properties

wl.db.jndi.name=java:comp/env/jdbc/WorklightDS
wl.db.type=MYSQL

以下是更详细的步骤: 是的,步骤如下:

  1. 使用 IM 安装 worklight 5.0.6.1 - 这会将三个 web 应用程序放在我的 Tomcat 文件夹中:appcenterconsole.war、applicationcenter.war 和 worklight.war

  2. 运行控制台(运行成功):http://hostname:8080/worklight/console

  3. 在 Eclipse 中创建一个混合项目,这会在 /bin 文件夹中生成 myprojectname.war 文件

  4. 更新我项目的 server/conf 文件夹中 workllight.properties 文件中的 publicWorkLightContext、publicWorkLightPort、wl.db.type、wl.db.jndi.name 变量。

  5. 将 myproject.war 重命名为 myappname.war 以匹配 publicWorkLightContext 变量的值

  6. 手动将 myappname.war 文件放到 Tomcat 的 webapps 文件夹下(此时错误开始出现)

  7. 另外通过 Worklight 控制台上传适配器和 wlapp 文件。这一步工作正常,我可以看到在数据库中创建的相应记录

【问题讨论】:

    标签: tomcat openjpa ibm-mobilefirst


    【解决方案1】:

    确保只部署了 1 个 Worklight .war 文件。

    根据您提到的步骤,您似乎没有在删除新的 .war 文件之前从 Tomcat 中删除当前的 worklight .war 文件。一次只能有 1 个 Worklight .war 文件。

    1. 转到 http://yourhost:8080/manager 并确保禁用并取消部署当前的 Worklight .war 文件。
    2. 使用 Tomcat 管理器,部署新的 .war 文件
    3. 转到 http://yourhost:8080/yourcontext/console 并部署相关 Worklight 项目中的应用程序

    【讨论】:

    • 我使用 Installation Manager 从 5.03 升级。然后我删除了所有以前的数据库并手动重新创建它们。战争文件只有一个。 jee jar 文件也是最新的。我几乎一步一步地完成了 tomcat/mysql 的手动安装和配置步骤。
    • 我猜他们唯一的选择就是把所有东西都清理干净,然后重新安装
    • IBM Installation Manager 有一个卸载选项。如果您选择重新安装路径,请先使用此选项。
    • 这可能是因为您自己删除并重新创建了数据库,您可能给它们提供了错误的名称(它们区分大小写,取决于您的系统和数据库软件),或者可能有错误配置了项目的 worklight.properties,具体取决于您的(新)设置。
    • 将该信息添加到您的问题以供审查,也许它是可挽救的......数据库名称(记住,区分大小写),以及 worklight.properties 的内容,您的操作系统等。 .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多