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

Struts 2 Java Discussion :

Erreur "javax.naming.NoInitialContextException"


Sujet :

Struts 2 Java

  1. #1
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut Erreur "javax.naming.NoInitialContextException"
    Bonjour,

    J'ai un problème que je compends pas d'ou ça vien?
    Code Erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
    	at javax.naming.InitialContext.lookup(InitialContext.java:351)
    	at DAO.DaoClient.<init>(DaoClient.java:19)
    	at DAO.TestDaoClient.main(TestDaoClient.java:9)
    Exception in thread "main" java.lang.NullPointerException
    	at DAO.DaoClient.ajouterClient(DaoClient.java:29)
    	at DAO.TestDaoClient.main(TestDaoClient.java:13)
    Voiçi les classes de m'application:

    Client.java
    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
    30
    31
    32
    33
    34
    35
    36
    package DAO;
     
    public class Client {
    private int idClient;
    private String nom;
    private String prenom;
    public Client() {
    	super();
    	// TODO Auto-generated constructor stub
    }
    public Client(String nom, String prenom) {
    	super();
    	this.nom = nom;
    	this.prenom = prenom;
    }
     
    public int getIdClient() {
    	return idClient;
    }
    public void setIdClient(int idClient) {
    	this.idClient = idClient;
    }
    public String getNom() {
    	return nom;
    }
    public void setNom(String nom) {
    	this.nom = nom;
    }
    public String getPrenom() {
    	return prenom;
    }
    public void setPrenom(String prenom) {
    	this.prenom = prenom;
    }
     
    }
    DaoClient.java
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    package DAO;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Hashtable;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
     
    public class DaoClient {
    	Connection connexio=null;
    	ResultSet resultat=null;
    	DataSource dataSource;
    public DaoClient() {
    		try {
     
    			Context initCtx=new InitialContext();
    			dataSource=(DataSource) initCtx.lookup("java:comp/env/jdbc/test");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    public int ajouterClient(Client client){
    	PreparedStatement requete=null;
    	String requeteString=null;
    	int codeErreur=0;
    	try {
    		connexio=dataSource.getConnection();
    		requeteString="INSERT INTO client(nomClient,prenomClient) VALUES(?,?)";
    		requete=connexio.prepareStatement(requeteString);
    		requete.setString(1,(String)client.getNom());
    		requete.setString(2, (String)client.getPrenom());
    		client=null;
    		codeErreur=requete.executeUpdate();
    	} catch (SQLException e) {
    		codeErreur=0;
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    	return codeErreur;
     
    }
    }
    TestDaoClient.java
    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
    package DAO;
     
    public class TestDaoClient {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    	DaoClient daoCli=new DaoClient();
    	Client cli=new Client();
    	cli.setNom("TAKNA");
    	cli.setPrenom("KAWTAR");
    	daoCli.ajouterClient(cli);
    	System.out.println("C bon");
     
    	}
     
    }
    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
    22
    23
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    	<display-name>
    	demostrutsdatabase</display-name>
    	<context-param>
            <param-name>dataSource</param-name>
            <param-value>java:/comp/env/jdbc/test</param-value>
        </context-param>
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>index.htm</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    		<welcome-file>default.html</welcome-file>
    		<welcome-file>default.htm</welcome-file>
    		<welcome-file>default.jsp</welcome-file>
    	</welcome-file-list>
    	<resource-ref>
    	<description>DB demostrutsdatabase Mysql Connection</description>
    	<res-ref-name>jdbc/test</res-ref-name>
    	<res-type>javax.sql.DataSource</res-type>
    	<res-auth>Container</res-auth>
    	</resource-ref>
    </web-app>
    context.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/demostrutsdatabase" 
                      reloadable="true"
                      docBase="\demostrutsdatabase">
     
    <Ressource name="jdbc/test" type="javax.sql.DataSource"
    maxActive="100" maxIdle="30" maxWait="10000" username="root" password=""
    driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" auth="Container"/>
    </Context>
    Merci de m'aider à trouver la solution.

  2. #2
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Bonjour,
    Si quelqu'un une idée je lui en serais toujours reconnaissant.

  3. #3
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Salut,

    quelle version de Tomcat?
    Tu n'as ien bidouiller dans le repertoire d install?

  4. #4
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Salut,

    Version 5.5

    J'ai rien bidouiller dans l'instal.

  5. #5
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Test ca pour appeler l InitialContext voir si c est mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Properties properties = new Properties();
            properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory");
            properties.put(Context.URL_PKG_PREFIXES, "org.apache.naming");
     
            new InitialContext(properties);

  6. #6
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    ça marche pas, toujours j'ai le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
    	at javax.naming.InitialContext.lookup(InitialContext.java:351)
    	at DAO.DaoClient.<init>(DaoClient.java:26)
    	at DAO.TestDaoClient.main(TestDaoClient.java:9)
    Impossible d'accéder au contexte
    Exception in thread "main" java.lang.NullPointerException
    	at DAO.DaoClient.ajouterClient(DaoClient.java:37)
    	at DAO.TestDaoClient.main(TestDaoClient.java:13)

  7. #7
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Comment effectues-tu tes tests?

  8. #8
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Dédolé Heimdal j'ai été absent.

    j'ai pris le code que vous me communiqué puis j'ai l'inseré dans le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public DaoClient() {
    		try {
    			Properties properties = new Properties();
    	        properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory");
    	        properties.put(Context.URL_PKG_PREFIXES, "org.apache.naming");
     
    						Context initCtx=new InitialContext();
    			dataSource=(DataSource) initCtx.lookup("java:comp/env/jdbc/test");
    		} catch (Exception e) {
    			e.printStackTrace();
    			System.out.println("Impossible d'accéder au contexte");
    		}
    	}
    puis j'ai redémarré le serveur tomcat + et j'exécute la class main TestDaoClient.

Discussions similaires

  1. [JNDI] javax naming NoInitialContextException
    Par r0nsync dans le forum Java EE
    Réponses: 20
    Dernier message: 20/07/2012, 09h56
  2. Réponses: 6
    Dernier message: 09/12/2010, 14h55
  3. [JNDI] javax.naming.NoInitialContextException: Need to specify class name
    Par j-mi-jim dans le forum Java EE
    Réponses: 1
    Dernier message: 30/01/2008, 10h34
  4. Réponses: 5
    Dernier message: 01/05/2007, 22h07
  5. [JNDI] javax.naming.NoInitialContextException
    Par soumou dans le forum Java EE
    Réponses: 2
    Dernier message: 01/10/2006, 16h08

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