2010-07-16 3 views
1

Je souhaite définir des paramètres en lecture seule (par exemple, un hôte et un port de registre RMI) pour une application Java EE déployée sur un serveur Glassfish. L'endroit habituel pour faire ceci serait le descripteur de déploiement, mais mon problème est qu'il est empaqueté dans l'EAR, donc je ne peux pas le modifier sans changer l'EAR.Paramétrer EAR

J'ai besoin de quelque chose de similaire à la configuration de ressources JDBC et JMS, mais beaucoup plus simple. Je pourrais mettre les données de configuration dans une table de base de données mais cela semble être exagéré. Je pourrais utiliser l'adaptateur de ressources de fichiers, mais il serait préférable de pouvoir modifier la configuration dans la console d'administration de Glassfish.

Existe-t-il un moyen standard de le faire? Comment testez-vous vos applications lorsqu'elles dépendent de nœuds externes avec lesquels elles doivent communiquer? Où dois-je mettre ces paramètres et comment puis-je y accéder?

Ma meilleure estimation était de définir les ressources JNDI externes, mais où puis-je mettre les données?

MISE À JOUR: ce que je pensais:

How can I store Java EE configuration parameters outside of an EAR or WAR?

La question est donc: comment dois-je faire cela dans Glassfish?

Répondre

3

Après quelques heures de googling j'ai trouvé la réponse! Ce n'est pas trivial, mais heureusement très facile. Ici, il est:

http://www.mentby.com/glassfish/custom-resource-work-when-looking-it-up-but-not-with-injection.html

Créer une ressource personnalisée sur la console d'administration, et ajouter une propriété appelée "valeur". Comme ceci:

alt text http://img231.imageshack.us/img231/8237/jndicustomresource.png

accès Ensuite ce nom/valeur est vraiment facile de l'EJB:

try { 
    InitialContext ic = new InitialContext(); 
    String value = (String) ic.lookup("MyCustomResource"); 
    System.out.println("MyCustomResource = " + value); 
} catch (NamingException e) { 
    e.printStackTrace(); 
} 

qui imprime

INFO: MyCustomResource = Un gros câlin de MyCustomResource!

Questions connexes