IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Webservice + accès postgresql


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 27
    Par défaut Webservice + accès postgresql
    Bonjour,

    je sais que beaucoup d'entre vous ont déjà lu et relu ce type de problème mais malgré plusieurs lectures de topics, je ne parviens pas à régler mon problème.

    Je dois réaliser un webservice en Java que je dois ensuite attaquer par Silverlight, jusque là tout va bien. Le problème arrive lorsque je veux me connecter à une base de données postgresql à partir de mon webservice.

    Petite précision, je travaille sous Eclipse avec tomcat7 et j'utilise la bibliothèque de connexion "postgresql-9.0-801.jdbc4.jar".

    J'ai lu plusieurs tutoriaux décrivant les différents fichiers .xml et voilà où j'en suis :

    %CATALINA_HOME%/conf/Catalina/localhost/monAppli.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <Context path="/monAppli" docBase="monAppli">
    <Resource name="jdbc/MaDataSource"
    			auth="Container"
    			useNaming="true"
    			type="javax.sql.DataSource"
    			username="user"
    			password="pass"
    			driverClassName="org.postgresql.Driver"
    			url="jdbc:postgresql://localhost:5432/monAppli"
    			maxActive="8"
    			maxIdle="4"
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    			/>
    </Context>
    WEB-INF/web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <web-app>
    ...
    <resource-ref>
    		<description>
    			Resource reference to a factory for java.sql.Connection
    		    instances that may be used for talking to a particular
    		    database that is configured in the "Context"
    		    configurartion for the web application.
    		</description>
    		<res-ref-name>
    			jdbc/MaDataSource
    		</res-ref-name>
    		<res-type>
    			javax.sql.DataSource
    		</res-type>
    		<res-auth>
    	    	Container
    		</res-auth>
    	</resource-ref>
    </web-app>
    Fonction de connexion de mon fichier java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void connexion() throws Exception{		
    		Context ctx = new InitialContext();
    		DataSource source = (DataSource)ctx.lookup("java:comp/env/jdbc/MaDataSource");
    		Connection connexion = source.getConnection();
    }
    Lorsque j'essaie de me connecter, j'obtiens l'erreur suivante :
    "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'"

    L'erreur se trouve à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection connexion  = source.getConnection();
    J'ai lu pas mal de topics différents et j'ai donc aussi essayé en modifiant le fichier server.xml, le fichier context.xml de tomcat, d'ajouter un fichier context.xml à mon dossier WEB-INF mais rien n'y fait...

    Mes .jar se trouvent à la fois dans mon dossier WEB-INF/lib mais aussi dans %CATALINA_HOME%/lib.

    Ça fait deux jours que je bloque là dessus et étant débutant dans le monde Tomcat je m’emmêle les pinceaux.

    Merci d'avance et désolé de vous faire relire une fois de plus ce même problème de configuration.

  2. #2
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Bonjour,

    J'utilise aussi tomcat avec postgresql, et dans mon server.xml j'ai plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
    (un seul dbcp)

    Sinon, le paramètre url pointe bien sur la bonne base de donnée ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    url="jdbc:postgresql://localhost/nom_de_la_bdd"

  3. #3
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 27
    Par défaut
    Salut,

    le changement de "factory" ne change rien. A priori c'est la même chose que je change le fichier "server.xml" ou que j'en mette un nouveau dans mon catalina/localhost nan ?

    La bonne base de données est visée, de ce que j'ai lu à chaque fois c'était un mauvais placement des .jar .

    Ou alors j'ai mal configuré le classpath de tomcat... Je travaille sous Eclipse et j'ai fais toutes les configurations à partir de là, y'a-t-il un autre moyen de faire ça directement dans le répertoire du serveur ?

    Merci

  4. #4
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Désolé pour mon inexactitude, je ne travaille pas avec la version 7 de tomcat, et je n'utilise que le server.xml.
    L'erreur vient peut-être d'un mauvais placement du JAR, ou bien d'une erreur de définition de la classe utilisée.(d'où ma proposition de changer la factory puisque je n'utilise pas la même classe...)

    Je crois que la réponse se trouve déjà ici :

    http://www.developpez.net/forums/d91...nect-url-null/

    Je crois que tu as dupliqué les JAR ?

    Mes .jar se trouvent à la fois dans mon dossier WEB-INF/lib mais aussi dans %CATALINA_HOME%/lib.
    Enlève donc ceux de ton WEB-INF/lib...

  5. #5
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 27
    Par défaut
    J'ai enlevé les .jar du dossier de mon projet mais rien ne change. Je commence a désespérer sérieusement, je vais peut être me tourner vers un webservice en PHP ou essayer une autre version de tomcat.

    Au final je sais que ma ressource est correctement reconnue, je pense que ce n'est qu'un problème de .jar

  6. #6
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Je ne vois pas comment tu sais que ta ressource est correctement reconnue.

    Je n'ai jamais utilisé eclipse avec tomcat, mais il semble que les fichiers de config utilisés soit ceux du projet eclipse. Donc inutile de modifier les fichiers de tomcat lui-même.
    Le fichier de config utilisé pour les ressources se nomme 'server.xml' ou 'context.xml' ? Pas autrement ?

    De mon côté, je n'ai pas besoin de préciser le port de postgres dans l'url.

    Je reste persuadé que l'erreur vient de la config et non du JAR lui-même.
    A part peut-être un mauvais placement du JAR...

    Désolé de ne pas pouvoir plus t'aider pour l'instant.

  7. #7
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 27
    Par défaut
    Je pense que ma ressource est correctement reconnue parce que si je change le nom dans le fichier java j'obtiens une erreur de contexte au niveau de mon lookup sur ma ressource.

    Concernant les fichiers, ma ressource est définie dans un fichier xml nomé nomDuProjet.xml qui se trouve dans %CATALINA_HOME%/conf/Catalina/localhost/nomDuProjet.xml

    Apparemment c'est ce qu'il faut faire... m'enfin je débute et je ne comprends pas grand chose...

    Je vais essayer de tout reprendre à zéro en mettant cette fois-ci la ressource dans mon server.xml

    Edit : Rectification, il doit bien y avoir une erreur dans mes fichiers de config parce qu'en changeant le nom de la ressource dans mon fichier nomProjet.xml je n'obtiens pas d'erreur de context.

  8. #8
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Ok le fichier est donc le bon. Pas besoin d'essayer avec context.xml ou server.xml.

    Je ne sais pas trop ce qui pose problème donc...

    De mon côté, les JAR pour la BDD sont dans WEB-INF\lib de mes applications et non dans les lib de tomcat...

    EDIT :
    je me disais aussi

Discussions similaires

  1. [IIS 7] Webservice accès refusés sur poste client
    Par slacky dans le forum IIS
    Réponses: 1
    Dernier message: 25/01/2011, 14h41
  2. Accès à PostgreSQL via ODBC et VB.NET
    Par jackrabbit dans le forum Installation
    Réponses: 7
    Dernier message: 03/01/2011, 22h53
  3. Accès à Postgresql
    Par emmanuel_dumas dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 27/05/2009, 23h39
  4. [Axis][WebService]accès simultanés à un Webservice
    Par olivierda dans le forum Services Web
    Réponses: 6
    Dernier message: 08/12/2006, 18h36
  5. acces à postgresql depuis windows
    Par webdoing dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/03/2004, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo