Logo Des Geeks et des lettres

sitemap

Pour les lecteurs qui m'ont demandé

la liste de tous les articles :

Ici le plan du site

Vous cherchez à surfer sur internet de manière anonyme ? Sur Des Geeks et des lettres nous vous conseillons le VPN Hide My Ass (voir ici notre test)

Utilisation du contexte JNDI de Tomcat via Spring

Présentation

Si votre application web a besoin de manipuler des données provenant d’une base de données, et que vous devez vous y connecter depuis le contexte JNDI de votre serveur d’applications, il existe plusieurs chemins qui permettent d’y arriver, je vais vous en présenter deux dans cet article.

Environnement technique

  1. Spring framework est utilisé pour la définition de vos services métiers et de vos beans d’accès aux données (v2.08)
  2. Vous utilisez Apache Tomcat comme serveur d’applications opensource (v6.0.14)
  3. Votre environnement de travail est Eclipse (v3.4.0)

Problème à résoudre

  1. Fichier de configuration Spring pour l’utilisation d’une variable JNDI lié à Tomcat (jdbc/dbUser)
  2. Erreur à résoudre au démarrage de votre application

Solution 1

Cette solution est largement utilisée : il faut déclarer votre source de données au niveau de Tomcat (conf/server.xml) et de lier cette ressource au contexte de votre application web, tout ce paramétrage se fait au niveau de votre serveur d’applications :

Solution 2

Cette solution est encore plus rapide et permet de ne rien toucher à votre serveur, tout se fait du côté de votre application web : déposer un fichier META-INF/context.xml contenant le paramétrage de la source de données à utiliser et son nom JNDI par lequel elle est appelée :

Conclusion

Je suis personnellement convaincu par le seconde solution qui me semble plus simple à mettre en place et permet d’avoir une configuration propre par application. Cependant la première fonctionne mais il faut prendre un peu plus de précaution car mettre les mains dans la configuration de votre Tomcat peut s’avérer fatal :)

sources disponibles ici

{ 6 commentaires… J’ajoute le mien }

  • Greg 26 janvier 2010, 20 08

    Et vu ce que tu fais de tes petites mimines, je confirme : ça marche !

    Discutez
  • Mimie 29 janvier 2010, 12 12

    Merci Greg :-)

    Discutez
  • Cyspeo 14 mars 2011, 11 11

    Il y a un avantage avec la seconde solution :
    On peu avoir besoin de déployer l’application sur plusieurs serveur (dev, test, prod) dans ce cas u paramétrage au niveau du serveur évite de faire plusieurs war différents

    Discutez
  • Cyspeo 14 mars 2011, 11 11

    Par don je voulais parler de la première solution !!

    Discutez
  • Mimie 14 mars 2011, 12 12

    Oui tu as raison, la première solution a bien des avantages, d’ailleurs en ce moment je suis revenu à la solution 1 pour ne pas que des infos propres à ma base soit contenu dans mon projet de présentation.

    Mais au lieu de linker la ressource à mon projet dans tomcat je la lie dans mon projet au niveau du context.xml :

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    	<!-- Specify a JDBC datasource -->
    	<ResourceLink name="jdbc/dbUser" global="jdbc/dbUser" type="javax.sql.DataSource"/>
    </Context>
    
    Discutez
  • rachid 2 avril 2013, 13 01

    et si je n’est pas de base de données, juste un ejb auquel je veux accéder sur un glassfish server??

    Discutez

Vos participations


5 × cinq =

Article suivant:

Article précédent:

Coup de pouce

Recherche

Derniers Commentaires

  • Canima { Super, avec ... ça fonctionne, merci pour cette astuce ! J'ai enfin pu centrer mes... } – 30 oct, 9:17
  • Supprimer Facebook { Le paradoxe des réseaux sociaux est le suivant : les utilisateurs y vont pour exister... } – 28 oct, 13:51
  • Greg { Merci pour la trouvaille. Je trouve sa version un peu trop linéaire, et sa voix... } – 28 oct, 8:55
  • stc { Fan de Cohen moi aussi, et de ce titre : la version de KD LANG... } – 26 oct, 23:43
  • Baptiste { Sympa pour cette explication pour Hangouts ! Merci bien ! Cependant, j'hésite encore entre l'extention... } – 26 oct, 17:36
  • { n'importe qui avec unicité et 2 compagnons ou plus peut finir un T6 !! enleve... } – 23 oct, 0:22
  • OMG { t 'es pas solo tu as besoin de compagnon j'apelle pas ca solo moi } – 23 oct, 0:18
  • kourou { bonjour, c bien tout ça mais quand vous avez Mandriva :( d'installer et que vous... } – 20 oct, 17:08
  • Benjamin { Comme il dit il a rajouté une ligne dans le fichier css avec une class... } – 10 oct, 12:04