Auriculaire de paramétrage
-
16-09-2020 - |
Question
Je voudrais définir des paramètres en lecture seule (par exemple, un hôte de registre RMI et un port) à une application Java EE déployée sur un serveur de verre de verre. L'endroit habituel pour ce faire serait le descripteur de déploiement, mais mon problème est qu'il est emballé à l'oreille, donc je ne peux donc pas le modifier sans changer l'oreille.
J'ai besoin de quelque chose de similaire pour définir les ressources JDBC et JMS, mais beaucoup plus simple. Je pourrais placer les données de configuration dans une table de base de données mais qui semble être surchargée. Je pourrais utiliser l'adaptateur de ressources de fichier, mais il serait préférable que je puisse éditer la configuration dans la console d'administration Glassfish.
Y a-t-il un moyen standard de faire cela? Comment testez-vous vos applications lorsqu'elles dépendent des nœuds externes dont ils ont besoin de communiquer avec? Où dois-je mettre ces paramètres et comment puis-je y accéder?
Ma meilleure hypothèse était de définir des ressources JNDI externes, mais où puis-je mettre les données?
mise à jour: c'est ce que je pensais à:
La question est donc la suivante: comment puis-je le faire dans Glassfish ?
La solution
Après quelques heures de googling, j'ai trouvé la réponse!Ce n'est pas trivial, mais heureusement très facile.Ici c'est:
http://www.mentby.com/glassfish/custom-resource-work-Quand-Looking-it-up-but-not-with-Injection.html
Créer une ressource personnalisée sur la console d'administration et ajoutez une propriété
Texte alt http://img231.imagesShack.us/img231/8237/jndicustomResource.png
L'accès à ce nom / valeur est vraiment facile à partir 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!