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 à:

Comment puis-je Stockez les paramètres de configuration Java EE en dehors d'une oreille ou d'une guerre?

La question est donc la suivante: comment puis-je le faire dans Glassfish ?

Était-ce utile?

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é appelée "valeur" .Comme ceci:

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!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top