2009-01-29 4 views
3

Notre projet est une application Web de taille moyenne développée à l'aide de RAD 7.0 sur WAS 6.1/Hibernate/Struts qui sont passés en production. Actuellement, nous avons codé en dur l'adresse IP du système de production dans les détails du fichier de propriétés et du schéma de la base de données dans le fichier de configuration hibernate. Notre client veut que nous trouvions la solution pour garder les détails de l'environnement à l'extérieur de l'EAR, afin qu'ils puissent changer les détails de l'environnement/db à l'avenir sans ouvrir l'EAR.Comment déplacer les détails de l'environnement en dehors de l'EAR

Tous les pointeurs seraient très utiles. Merci.

Répondre

5

Vous pouvez utiliser JNDI pour cela. Vous devez créer les entrées appropriées et dans votre code les lire comme ceci:

Context initialContext = new InitialContext(); 
URL ip = (URL) initialContext.lookup("java:comp/env/myip"); 

Voir this article sur la façon d'utiliser une source de données JNDI dans les fichiers de configuration de mise en veille prolongée.

+2

Utilisez définitivement JNDI pour la base de données, puis utilisez la base de données pour toutes les autres propriétés. Les fichiers de propriétés externes ne sont pas terribles pour une seule instance, mais si vous voulez un cluster, il devient inutile de les synchroniser. –

+0

Qu'en est-il de la lecture des valeurs de chaîne et/ou des adresses IP directement à partir de JNDI? – kgiannakakis

0

Vous pouvez essayer ceux-ci, je m'en tiens à la première solution dans mes projets.

  1. Avoir toutes ces informations dans un fichier de propriétés qui est inclus dans EAR. Quand ils veulent changer l'information, ils doivent redéployer l'EAR. C'est ce que j'utilise comme ça nous pouvons faire le changement de contrôle dans SCM. Faites votre application lire un fichier de propriétés qui ont ces détails et au moment du démarrage de l'application le code se réfère à ce fichier qui est en dehors de EAR. Ils modifient les données et redémarrent l'application.

0

Vous pouvez maintenir la configuration dans un répertoire extérieur de l'oreille sur le serveur et au démarrage de l'application (en utilisant généralement une servlet qui est invoquée sur l'application de démarrage), lire la configuration dans un singleton ou une classe statique . Fournir un utilitaire à l'utilisateur admin dans l'application pour recharger la configuration à partir du fichier afin que chaque fois qu'il y a un changement dans la dernière configuration peut être rechargé.

0

j'ai obtenu une réponse d'un autre forum que l'utilisation du paramètre de chemin de classe qui est disponible en configuration du serveur web, nous pouvons le faire

spécifier le chemin du répertoire où u ont stocké le fichier de propriétés et redémarrez le thats serveur il

est un moyen de déplacer le fichier cfg hibernate hors de l'EAR ou juste db détails de configuration que nous mentionnons dans Hibernate cfg sur le côté de l'EAR?

Questions connexes