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

Servlets/JSP Java Discussion :

Gestion d'un pool de connexions par C. Jollivet


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Gestion d'un pool de connexions par C. Jollivet
    Bonjour,

    Mon Servlet a marché puis j'ai renommé un répertoire et depuis j'ai toujours le même message : La ressource demandée (Servlet TutoPool n'est pas disponible.) n'est pas disponible.

    La ressource demandée (/TutoPool/) n'est pas disponible.

    Je suis bien revenu en arrière mais pas moyen...

    Donc j'ai tout viré et j'ai gardé une cohérence dans la déclaration des répertoires, de mon package... soit TutoPool partout.

    J'ai tourné et retourné les fichiers web.xml et context.xml en me basant sur le tuto et un autre projet SGBD qui fonctionne mais impossible.

    A la compilation aucun message d'erreur.

    Merci si vous pouvez m'aider..

    Mes codes :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <display-name>TutoPool</display-name> 
        <servlet>
            <servlet-name>TutoPool</servlet-name>
            <servlet-class>TutoPool.TutoPool</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>TutoPool</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        <resource-ref>
    		<description>
    			reference a la ressource BDD pour le pool
    		</description>
    		<res-ref-name>jdbc/mabase_MySQL</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
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/TutoPool">
      <Resource auth="Container" 
      driverClassName="com.mysql.jdbc.Driver" 
      maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/mabase_MySQL" 
      password="toto" type="javax.sql.DataSource" 
      url="jdbc:mysql://localhost:3306/mabase" username="root"/>
    </Context>
    TutoPool.java (de toute façon j'arrive plus a rentrer içi.......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package TutoPool;
    import java.io.*;
    import java.sql.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.sql.*;
    public class TutoPool extends HttpServlet {
    	private DataSource ds; //la source de données
    	protected void doGet(..............

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Bon, j'ai résolu mon problème !

    Pfiouuu, c'est laborieux dites-moi.
    Mon erreur a été de supprimer le fichier index.jsp mais je croyais qu'on pouvait s'en passer en déclarant le servlet dans web.xml ??
    Voiçi mes différents codes :

    index.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:forward page="/NewServlet" />
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <servlet>
            <servlet-name>NewServlet</servlet-name>
            <servlet-class>Servlets.NewServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>NewServlet</servlet-name>
            <url-pattern>/NewServlet</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>  <-- Peut-on appeler le servlet içi et se passer de index.jsp ?
            </welcome-file-list>
        </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="/ServleConnection">
      <Resource auth="Container" 
      driverClassName="com.mysql.jdbc.Driver" 
      maxActive="20" maxIdle="10" maxWait="-1" 
      name="jdbc/mabase_MySQL" password="toto" 
      type="javax.sql.DataSource" 
      url="jdbc:mysql://localhost:3306/mabase" username="root"/>
    </Context>
    NewServlet.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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    package Servlets;
     
    import java.io.*;
    import java.sql.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.sql.*;
    public class NewServlet extends HttpServlet {
    	private DataSource ds; //la source de données
    	protected void doGet(
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws ServletException, IOException {
    		response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
    		out.println("<html><head></head>");
    		out.println("<body>");
    		Connection con=null;
    		Statement s=null;
    		ResultSet rs=null;
    		try {
    			//récupération de la Connection depuis le DataSource
    			con = ds.getConnection();
    			s = con.createStatement();
    			rs = s.executeQuery("SELECT * FROM data");
    			while (rs.next()) {
    				out.println(rs.getString(1) + "      ");
    				out.println(rs.getString(2) + "<br/>");
    			}
    		} catch (SQLException e) {
    			response.sendError(500, "Exception sur l'accès à la BDD " + 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("</body>");
    		out.println("</html>");
    		out.close();
    	}
    	public void init() throws ServletException {
    		try {
    			//récupération de la source de donnée
    			Context initCtx = new InitialContext();
    			ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mabase_MySQL");
    		} catch (Exception e) {
    			throw new UnavailableException(e.getMessage());
    		}
    	}
    }
    Remarques :
    -> bien faire attention aux noms que vous choisissez, votre base, votre table, aux url...
    -> ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mabase_MySQL"); (cette ligne là je l'ai déduite à partir d'un code généré sur un projet JSF) quelqu'un peut-il me dire une autre façon de trouver ce type de code ? Dans quelle documentation trouve t-on cela ?

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

Discussions similaires

  1. Réalisation d'un proxy HTTP, gestion des connexions par fork
    Par Magus (Dave) dans le forum Réseau
    Réponses: 3
    Dernier message: 12/02/2010, 20h16
  2. à propos la gestion d'une pool de connexion
    Par edogawa dans le forum Général Java
    Réponses: 4
    Dernier message: 28/08/2009, 03h25
  3. Réponses: 4
    Dernier message: 28/09/2006, 01h12
  4. Gestion de pool de connexion
    Par vikrem dans le forum JSF
    Réponses: 2
    Dernier message: 20/09/2006, 14h15
  5. [VB.NET] Gestion pool de connexions....
    Par Sinclair dans le forum ASP.NET
    Réponses: 23
    Dernier message: 21/12/2004, 10h57

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