2017-08-21 4 views
0

Nous avons deux applications indépendantes App1 et App2 déployées sur le serveur wildfly 10 (sous forme de fichiers .war séparés) et les deux en utilisant le module 'org.hibernate' de wildfly. Idéalement, les deux applications doivent être connectées à deux bases de données distinctes.Wildfly 10 propriétés d'hibernation étant partagées entre plusieurs applications

Chacune de ces applications possède ses propres propriétés hibernate.properties dans leurs chemins de classes respectifs.

Problème

La première application App1 à déployer est correctement configuré pour utiliser la base de données, mais la deuxième application App2 lorsqu'il est déployé, utilise les propriétés de mise en veille prolongée de la première application et relie ainsi à la DB de App1.

Il semble que wildfly initialise le module hibernate avec les premières propriétés hibernate.properties trouvées et l'utilise avec toutes les autres applications déployées sur le serveur. Toute suggestion sur la façon dont les deux applications peuvent être configurées pour se connecter à sa propre base de données ou tout pointeur sur le fonctionnement du chargement du module d'hibernation pour plusieurs applications dans wildfly serait utile.

Répondre

1

Dans Wildfly, vous n'êtes pas censé utiliser directement Hibernate. Au lieu de cela, vous devez utiliser l'API JPA comme décrit here.

Cela signifie que vous utilisez le EntityManager qui est injecté dans votre code:

@PersistenceContext(unitName = "customerPU") 
EntityManager em; 

La valeur unitName fait référence au nom de la source de données configurée dans votre standalone.xml. Si vous n'utilisez pas l'injection de dépendance, vous pouvez également lier le EntityManager à une entrée JNDI, comme expliqué here. Vous pouvez donc définir deux sources de données différentes dans votre fichier standalone.xml et injecter dans les deux applications deux gestionnaires d'entités différents.

+0

Merci pour l'indice. Laisse-moi essayer. – Nikhil