Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

jndi et web.xml

3 réponses
Avatar
mei
Bonjour,

Je commence à me mettre aux technos J2EE. J'ai créé sous Tomcat une
servlet qui utilise JNDI pour retrouver une connection JDBC depuis un
pool. Je me posais la question suivante:
pourquoi est-il nécessaire de déclarer les ressources JNDI dans le
descripteur web.xml? Pour le moment, la seule raison que je vois est
seulement à des fins de documentation...
Merci d'avance.

3 réponses

Avatar
TestMan
Bonjour,

Je commence à me mettre aux technos J2EE. J'ai créé sous Tomcat une
servlet qui utilise JNDI pour retrouver une connection JDBC depuis un
pool. Je me posais la question suivante:
pourquoi est-il nécessaire de déclarer les ressources JNDI dans le
descripteur web.xml? Pour le moment, la seule raison que je vois est
seulement à des fins de documentation...
Merci d'avance.


Bonsoir,

En gros, cela permet de cataloguer les resources et leur "alias interne"
en vue par exemple de les assigner à des "alias public".

Tout ceci permet de réutiliser facilement des resources déjà existantes
dans le serveur pour une nouvelle application (un pool de connexion par
exemple) et non pas d'en créer un nouveau à chaque fois. .

C'est un peu (toute proportion gardée) le même genre de jeu que les
liens symboliques sous Unix, si ça te parle plus ;-)

Si tu débutes, saute sur du Java EE 5, les resources sont injectés
directement dans les servlet, un régal...

Pas sûr d'avoir répondu clairement (le manque de sommeil, ça tue)...

A+
TM

Avatar
mei
J'avoue ne pas très bien comprendre encore.
Le descripteur web.xml est spécifique à une webapp donnée. Donc où est
la possibilité de réutilisation? Si la ressource est déclarée dans
server.xml (pour tomcat), ok, mais ce fichier est spécifique à ce
conteneur...
Pour les injections de dépendances, j'ai pu en voir un peu avec spring,
mais j'aimerai aussi connaître comment ca marchait avant pour mieux
apprécier les avancées ;)

Bonjour,

Je commence à me mettre aux technos J2EE. J'ai créé sous Tomcat une
servlet qui utilise JNDI pour retrouver une connection JDBC depuis un
pool. Je me posais la question suivante:
pourquoi est-il nécessaire de déclarer les ressources JNDI dans le
descripteur web.xml? Pour le moment, la seule raison que je vois est
seulement à des fins de documentation...
Merci d'avance.


Bonsoir,

En gros, cela permet de cataloguer les resources et leur "alias interne"
en vue par exemple de les assigner à des "alias public".

Tout ceci permet de réutiliser facilement des resources déjà existantes
dans le serveur pour une nouvelle application (un pool de connexion par
exemple) et non pas d'en créer un nouveau à chaque fois. .

C'est un peu (toute proportion gardée) le même genre de jeu que les
liens symboliques sous Unix, si ça te parle plus ;-)

Si tu débutes, saute sur du Java EE 5, les resources sont injectés
directement dans les servlet, un régal...

Pas sûr d'avoir répondu clairement (le manque de sommeil, ça tue)...

A+
TM



Avatar
Frederic Lachasse
mei wrote:
Bonjour,

Je commence à me mettre aux technos J2EE. J'ai créé sous Tomcat une
servlet qui utilise JNDI pour retrouver une connection JDBC depuis un
pool. Je me posais la question suivante:
pourquoi est-il nécessaire de déclarer les ressources JNDI dans le
descripteur web.xml? Pour le moment, la seule raison que je vois est
seulement à des fins de documentation...
Merci d'avance.


Bonsoir,

En gros, cela permet de cataloguer les resources et leur "alias
interne" en vue par exemple de les assigner à des "alias public".

Tout ceci permet de réutiliser facilement des resources déjà
existantes dans le serveur pour une nouvelle application (un pool de
connexion par exemple) et non pas d'en créer un nouveau à chaque fois. .

C'est un peu (toute proportion gardée) le même genre de jeu que les
liens symboliques sous Unix, si ça te parle plus ;-)

Si tu débutes, saute sur du Java EE 5, les resources sont injectés
directement dans les servlet, un régal...

Pas sûr d'avoir répondu clairement (le manque de sommeil, ça tue)...


J'avoue ne pas très bien comprendre encore.
Le descripteur web.xml est spécifique à une webapp donnée. Donc où est
la possibilité de réutilisation? Si la ressource est déclarée dans
server.xml (pour tomcat), ok, mais ce fichier est spécifique à ce
conteneur...
Pour les injections de dépendances, j'ai pu en voir un peu avec spring,
mais j'aimerai aussi connaître comment ca marchait avant pour mieux
apprécier les avancées ;)


Pense grosse entreprise et serveurs d'applications avec plusieurs
dizaines d'applications déployés. Les WAR sont bien sûr développés par
des équippes différentes, et le déployement en production est fait par
un "déployeur", et non pas les développeurs.

Dans ce type de scénario, le déployeur veut un maximum de flexibilité:
certain WAR vont utiliser le même alias pour leurs datasources, mais en
fait ils doivent se connecter à differentes bases de données, ou
vice-versa. Et plus tard, le WAR sera re-déployé sur un autre serveur,
parce que le traffic est différent.

Le web.xml décrit ce que l'application a besoin (une datasource avec un
alias spécifique). Cela permet au déployeur de relier l'alias vers la
bonne datasource sans avoir à connaître les détails de l'application.

--
Frédéric Lachasse - ECP86