2 votes

problèmes pour déployer un projet dans Worklight 5.0.6

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 :

  1. Utilisez IM pour installer worklight 5.0.6.1 - cela met trois webapps dans mon dossier Tomcat : appcenterconsole.war, applicationcenter.war et worklight.war.

  2. Exécuter la console (fonctionne avec succès) : http://hostname:8080/worklight/console

  3. Créer un projet hybride dans eclipse qui génère le fichier myprojectname.war dans le dossier /bin.

  4. 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.

  5. Renommez le fichier myproject.war en myappname.war pour qu'il corresponde à la valeur de la variable publicWorkLightContext.

  6. Déposez manuellement le fichier myappname.war dans le dossier webapps de Tomcat (c'est à ce moment que l'erreur commence à apparaître).

  7. 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.

0voto

Idan Adar Points 40312

Assurez-vous qu'il n'y a qu'un seul fichier .war Worklight déployé.

D'après les étapes que vous avez mentionnées, il semble que vous n'ayez pas supprimé le fichier .war Worklight actuel de Tomcat avant de déposer le nouveau fichier .war. Il ne peut y avoir qu'un seul fichier .war Worklight à la fois.

  1. Aller à http://yourhost:8080/manager et assurez-vous que vous avez désactivé et undeployé le fichier .war actuel de Worklight.
  2. À l'aide du gestionnaire Tomcat, déployez le nouveau fichier .war.
  3. Aller à http://yourhost:8080/yourcontext/console et déployer les applications à partir du projet Worklight correspondant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X