Erreur "javax.naming.NoInitialContextException"
Bonjour,
J'ai un problème que je compends pas d'ou ça vien?
Code Erreur:
Code:
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:
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:
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:
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:
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:
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.