120 votes

À quoi sert resource-ref dans web.xml ?

Je me demande quand/pourquoi que vous devez définir un élément resource-ref dans votre fichier web.xml ?

Je n’aurais pensé qu’il serait défini dans votre serveur web/application à l’aide de JNDI et puis chercher la référence JNDI dans votre code Java ?

La définition de ressource-Réf semble un peu redondante pour moi et je ne peux pas penser quand il pourrait être utile. Exemple :

Merci !

160voto

candiru Points 2108

Vous pouvez toujours vous référer vers les ressources de votre application directement par leur nom JNDI comme configuré dans le conteneur, mais si vous le faites, essentiellement, vous êtes le câblage le conteneur de nom spécifique dans votre code. Cela a des inconvénients, par exemple, si vous souhaitez modifier le nom plus tard pour une raison quelconque, vous aurez besoin de mettre à jour toutes les références dans toutes vos applications, et puis de reconstruire et de les redéployer.

<resource-ref> introduit une autre couche d'indirection: vous indiquez le nom que vous souhaitez utiliser dans le web.xmlet, selon le conteneur, fournir une liaison dans un conteneur spécifique fichier de configuration.

Donc voici ce qui arrive: disons que vous voulez pour la recherche de l' java:comp/env/jdbc/primaryDB nom. Le conteneur trouve que web.xml a un <resource-ref> élément jdbc/primaryDB, donc à chercher dans le conteneur de configuration spécifique, qui contient quelque chose de semblable à la suivante:

<resource-ref>
  <res-ref-name>jdbc/primaryDB</res-ref-name>
  <jndi-name>jdbc/PrimaryDBInTheContainer</jndi-name>
</resource-ref>

Enfin, il renvoie l'objet enregistré sous le nom de jdbc/PrimaryDBInTheContainer.

L'idée est que la spécification de ressources dans le web.xml a l'avantage de séparer le développeur rôle de la deployer rôle. En d'autres termes, en tant que développeur, vous n'avez pas de savoir ce que les ressources nécessaires sont en fait appelé dans la production, et que le gars du déploiement de l'application, vous aurez une belle liste de noms à la carte à des ressources réelles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X