Exécution de Worklight 5.0.6 sur Tomcat 7 avec MySQL 5.6
J'ai supprimé toutes les bases de données précédentes et laissé le gestionnaire d'installation les recréer. La console fonctionne bien et je suis capable de télécharger le wlapp et les adaptateurs. Cependant, après avoir déployé monprojet.war, j'obtiens l'erreur suivante toutes les 5 secondes :
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.
Système d'exploitation : Windows Server 2008 R2 Standard
Bases de données : APPCNTR, WLREPORT, WRKLGHT
Contenu du fichier 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>
Le web.xml de Tomcat
<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
Voici les étapes plus en détail : Oui, voici les étapes :
-
Utilisez IM pour installer worklight 5.0.6.1 - cela met trois webapps dans mon dossier Tomcat : appcenterconsole.war, applicationcenter.war et worklight.war.
-
Exécuter la console (fonctionne avec succès) :
http://hostname:8080/worklight/console
-
Créer un projet hybride dans eclipse qui génère le fichier myprojectname.war dans le dossier /bin.
-
Mettre à jour les variables publicWorkLightContext, publicWorkLightPort, wl.db.type, wl.db.jndi.name trouvées dans le fichier workllight.properties dans le dossier server/conf de mon projet.
-
Renommez le fichier myproject.war en myappname.war pour qu'il corresponde à la valeur de la variable publicWorkLightContext.
-
Déposez manuellement le fichier myappname.war dans le dossier webapps de Tomcat (c'est à ce moment que l'erreur commence à apparaître).
-
En outre, téléchargez les fichiers de l'adaptateur et du wlapp par le biais de la console Worklight. Cette étape fonctionne bien et je peux voir les enregistrements respectifs créés dans les bases de données.