Bonjour,
J'utilise Eclipse 3.2 et Tomcat 5.5. J'ai developpe une premiere application toute simple, avec une requete a une base de donnees. Probleme, j'aiune exception a l'execution: NullPointerException, a la ligne ou je fais: con = ds.getConnection();. Mon application s'appelle test.
Voila les morceaux interressants de mon server.xml:
Voici mon 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource name="SRDemoDS" type="javax.sql.DataSource" password="oracle" driverClassName="oracle.jdbc.OracleDriver" maxIdle="2" maxWait="5000" username="srdemo" url="jdbc:oracle:thin:@ifs_alpha:1521:A1" maxActive="4"/> </GlobalNamingResources> <Service name="Catalina"> ... <Engine defaultHost="localhost" name="Catalina"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> <Host appBase="webapps" name="localhost"> <Context path="/test"> <Resource auth="Container" description="reference to SRDemo DB for testing connection" name="SRDemoDS" type="javax.sql.DataSource"/> </Context> </Host> </Engine> </Service> </Server>
Et voici mon 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
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?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>test</display-name> <servlet> <servlet-name>ServletTest</servlet-name> <servlet-class>bison.romain.servlets.test.ServletTest</servlet-class> <init-param> <param-name>defaultNom</param-name> <param-value>inconnu</param-value> </init-param> <init-param> <param-name>defaultAge</param-name> <param-value>XXX</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>ServletTest</servlet-name> <url-pattern>/ServletTest</url-pattern> </servlet-mapping> <resource-ref> <description> reference to SRDemo DB for testing connection </description> <res-ref-name> SRDemoDS </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref> </web-app>
Voila. sinon, je pense que les parametres de ma datasource sont corrects puisque j'y accede d'une autre facon et ca fontionne. est-ce qu'il manque quelque chose?
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 public class ServletTest extends HttpServlet { // paramètres d'instance private String defaultNom = null; private String defaultAge = null; //init public void init() { // on récupère les paramètres d'initialisation de la servlet ServletConfig config = getServletConfig(); defaultNom = config.getInitParameter("defaultNom"); } private DataSource ds; //GET public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // on récupère les paramètres du formulaire String nom = request.getParameter("txtNom"); String age = request.getParameter("txtAge"); Connection con=null; Statement s=null; ResultSet rs=null; response.setContentType("text/html"); PrintWriter out=response.getWriter(); out.println( "<html>"+ "<body>"); try { // récupération de la Connection depuis le DataSource con = ds.getConnection(); s = con.createStatement(); rs = s.executeQuery("SELECT * FROM users"); while (rs.next()) { out.println(rs.getString(4) + " "); out.println(rs.getString(5) + "<br/>"); } } catch (SQLException e) { response.sendError(500, "Exception on DB access " + e); }finally { if (rs != null) { try { rs.close(); } catch (SQLException e) {} rs = null; } if (s != null) { try { s.close(); } catch (SQLException e) {} s = null; } if (con != null) { try { con.close(); } catch (SQLException e) {} con = null; } } out.println( "<center>"+ ... ) }}
Merci
Partager