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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

Injection de ressource


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut Injection de ressource
    Bonjour,

    Je suis en train de développer une application où j'ai besoin de me connecter à une BD. Dans mon premier essaye d'application, tout à très bien marché. Maintenant j'essaye de changer mon code pour faire une "Injection de ressource", mais j'ai l'erreur "java.lang.NullPointerException" à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection myConn = myDataSource.getConnection();
    Je pense qui j'ai un problème avec ma DataSource, qui je n'arrive pas à trouver comment la déclarer/ initialiser...

    La classe qui j'utilise pour me connecter est la suivant:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    import java.sql.*;
    import javax.sql.DataSource;
    import javax.annotation.Resource;
     
    class ConnectionDAO {
     
    	//private Connection myConn;
    	@Resource(name="jdbc/testapp")
    	private DataSource myDataSource;
     
    	public ConnectionDAO() throws ClassNotFoundException, SQLException{
    		//dataSource = myDataSource;
    	}
     
    	public String getName(String mec) throws SQLException{
    		String nom = "";
    		String SQL = "SELECT Nom FROM T_collaborateurs WHERE Mec='" + mec + "'";
     
    		Connection myConn = myDataSource.getConnection();
    	    Statement stmt = myConn.createStatement(); 
    	    ResultSet rs = stmt.executeQuery(SQL);
    	    while (rs.next()){
    	        nom=rs.getString("Nom");
    	    }
    	    myConn.close();
    	    stmt.close();
    		return nom;
    	}
    }
    et mon fichier web.xml est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      <resource-ref>
        <description>testapp db connection</description>
        <res-ref-name>jdbc/testapp</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>
    Ci-dessous je mettre aussi mon fichier de context dans Tomcat:
    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 docBase="c:\NETDADOS\EclipseProjectsWeb\testapp\WebContent" reloadable="true" >
     
    	<Resource 	name="jdbc/testapp"
    				auth="Container"
    				type="javax.sql.DataSource"
    				factory="org.apache.commons.dbcp.BasicDataSourceFactory"
     
    				driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    				url="jdbc:sqlserver://10.88.248.22:1433;databaseName=outils_gestion_DV;user=xxx;password=xxx"
     
    				maxActive="10"
    				maxIdle="5"
    				maxWait="10000"
    				removeAbandoned="true" />
    </Context>
    Est-ce que quelqu'un pourrait m'aider, svp?
    Je vous remercie d'avance,
    Marc

  2. #2
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Je ne pense pas que @Resource puisse fonctionner dans une classe quelconque, dans Tomcat. Dans ce contexte, @Resource ne fonctionne que sur des Servlets.
    Si tu veux du @Rersource, il faut un moteur d'injection plus évolué comme Spring ou CDI.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Bonjour et merci de ta réponse hasalex


    J'ai changé pour une variable Context jndiContext (dans une Servlet) et l'application semble marcher maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2016, 18h20
  2. Réponses: 0
    Dernier message: 24/05/2013, 02h02
  3. Fichier ressource contenant une icône
    Par k_boy dans le forum x86 32-bits / 64-bits
    Réponses: 9
    Dernier message: 26/09/2002, 20h59
  4. Utilisation de ressources images
    Par bebeours dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/09/2002, 14h33
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

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