2013-05-09 57 views
2

部署项目与MySQL 5.6问题工作灯5.0.6

在Tomcat 7运行工作灯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

上下文的

内容。 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安装工作灯5.0.6.1 - 这使3种的webapps在我Tomcat文件夹:appcenterconsole.war,applicationcenter.war和worklight.war

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

  3. 在Eclipse中创建一个混合动力项目,这会产生在/ bin文件夹

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

  5. 重命名myproject.war到myappname.war以匹配publicWorkLightContext可变

  6. 手动删除文件myappname.war的Tomcat的web应用文件夹下(这是当误差出现开始)的值

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

回答

0

确保只部署了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和部署从相关工作灯项目
+0

我用安装管理器从5.03升级的应用程序。然后我删除了所有以前的数据库并手动重新创建它们。战争档案只有一个。 jee jar文件也是最新的。我几乎一步一步地完成了tomcat/mysql的手动安装和配置步骤。 – Aram 2013-05-10 12:53:11

+0

我想他们唯一的选择是清除所有内容并进行全新安装 – Aram 2013-05-10 13:00:08

+0

IBM Installation Manager具有卸载选项。如果您选择重新安装路径,请首先使用此选项。 – 2013-05-10 13:06:57