Salut ,
Voila j'utilise Tomcat 7 sur Eclipse , dans mon application Commande_Projet , j essaye de charger le DAOFactory dans la methode init() de ma servlet ClientInscription mais quand j'exécute ca me donne cette erreur sur le navigateur (l'image de l'erreur dans la piece jointe) :
javax.servlet.ServletException: "Servlet.init()" pour la servlet ClientInscription a généré une exception
Sur la console ca me donne cette erreur :
Bref l'erreur viens surement de la methode init() de ma servlet mais je ne sais pas comment résoudre le problème , voila mes code :
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 Exception lors de l'allocation pour la servlet ClientInscription java.lang.NullPointerException at com.commande.servlets.ClientInscription.init(ClientInscription.java:52) at javax.servlet.GenericServlet.init(GenericServlet.java:160) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
=> code de la servlet ClientInscription :
=> code de l'initianisation du DAOFactory InisialisationDAOfactory :
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 public class ClientInscription extends HttpServlet { private static final long serialVersionUID = 1L; private static final String vue_formulaireClient = "/WEB-INF/formulaire_client.jsp"; private static final String vue_menu = "/WEB-INF/Menu.jsp"; private static final String Form_Client = "formClient"; private static final String Bean_Client = "beanClient"; private static final String session_client = "sessionClient"; private ClientDAO clientDAO; public static final String DAOfactoryInstance = "FactoryDao"; /** * @see HttpServlet#HttpServlet() */ public ClientInscription() { super(); // TODO Auto-generated constructor stub } /** * @see Servlet#init(ServletConfig) */ public void init() throws ServletException { this.clientDAO = ( (DAOFactory) getServletContext().getAttribute( DAOfactoryInstance ) ).getClientDAO(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { this.getServletContext().getRequestDispatcher( vue_formulaireClient ).forward( request, response ); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { ClientForm form_client = new ClientForm( clientDAO ); Client client = form_client.FormClient( request ); request.setAttribute( Form_Client, form_client ); request.setAttribute( Bean_Client, client ); HttpSession session = request.getSession(); if ( form_client.getErreurs().isEmpty() ) { // Map Commande : Map<Long, Client> mapClient = (HashMap<Long, Client>) session.getAttribute( session_client ); if ( mapClient == null ) { mapClient = new HashMap<Long, Client>(); } mapClient.put( client.getId_client(), client ); session.setAttribute( session_client, mapClient ); this.getServletContext().getRequestDispatcher( vue_menu ).forward( request, response ); } else { this.getServletContext().getRequestDispatcher( vue_formulaireClient ).forward( request, response ); } } }
=> code du DAOFactory :
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 public class InisialisationDAOfactory implements ServletContextListener { private DAOFactory daoFactory; public static final String DAOfactoryInstance = "FactoryDao"; @Override public void contextInitialized( ServletContextEvent event ) { ServletContext context = event.getServletContext(); this.daoFactory = DAOFactory.getInstance(); context.setAttribute( DAOfactoryInstance, this.daoFactory ); } @Override public void contextDestroyed( ServletContextEvent event ) { // TODO Auto-generated method stub } }
=> Code du ClientDAO :
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 public class DAOFactory { private static String fichierDAO = "/com/commande/dao/dao.properties"; private static String champ_url = "url"; private static String champ_driver = "driver"; private static String champ_nomutilisateur = "nomutilisateur"; private static String champ_motdepasse = "motdepasse"; private String url; private String nomUtilisateur; private String motDePasse; public DAOFactory( String url, String nomUtilisateur, String motDePasse ) { super(); this.url = url; this.nomUtilisateur = nomUtilisateur; this.motDePasse = motDePasse; } public static DAOFactory getInstance() throws DAOConfigurationException { Properties properties = new Properties(); String url; String driver; String nomUtilisateur; String motPasse; ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); InputStream fichier = classLoader.getResourceAsStream( fichierDAO ); if ( fichier == null ) { throw new DAOConfigurationException( "Echec de lecture du fichier DAO" ); } try { properties.load( fichier ); url = properties.getProperty( champ_url ); driver = properties.getProperty( champ_driver ); nomUtilisateur = properties.getProperty( champ_nomutilisateur ); motPasse = properties.getProperty( champ_motdepasse ); } catch ( IOException e ) { throw new DAOConfigurationException( "Echec de chargement du fichier DAO" + e ); } try { Class.forName( driver ); } catch ( ClassNotFoundException e ) { throw new DAOConfigurationException( "Echec de chargement du Driver" + e ); } DAOFactory instance = new DAOFactory( url, nomUtilisateur, motPasse ); return instance; } Connection getConnection() throws SQLException { return DriverManager.getConnection( url, nomUtilisateur, motDePasse ); } public ClientDAO getClientDAO() { return new ClientDAOimplement( this ); } }
=> Code de l'implementation ClientDAOimplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public interface ClientDAO { void creerClient( Client client ) throws DAOException; }
Et voila l'image de mon erreur sur le navigateur :
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
47
48 public class ClientDAOimplement implements ClientDAO { public static final String sqlInsert = "insert into client(nom,prenom,adresseLivraison,telephone,email) values (?,?,?,?,?)"; public DAOFactory daoFactory; public ClientDAOimplement( DAOFactory daoFactory ) { super(); this.daoFactory = daoFactory; } @Override public void creerClient( Client client ) throws DAOException { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultsetKey = null; try { connection = daoFactory.getConnection(); preparedStatement = inisialisationPrepareStatement( connection, sqlInsert, true, client.getNom(), client.getPrenom(), client.getAdresse_livraison(), client.getTelephone(), client.getEmail() ); int status = preparedStatement.executeUpdate(); if ( status == 0 ) { throw new DAOException( "Aucune ligne n'as étais inserer" ); } resultsetKey = preparedStatement.getGeneratedKeys(); if ( resultsetKey.next() ) { client.setId_client( resultsetKey.getLong( 1 ) ); } else { throw new DAOException( "L'id du client n'as pas étais générer " ); } } catch ( SQLException e ) { throw new DAOException( "Echec de la création du Client" + e ); } finally { fermeture( resultsetKey, preparedStatement, connection ); } }
Partager