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

Glassfish et Payara Java Discussion :

Accés à une base de données Mysql


Sujet :

Glassfish et Payara Java

  1. #1
    Membre habitué Avatar de astrotouf
    Profil pro
    Consultant informatique
    Inscrit en
    Avril 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2005
    Messages : 221
    Points : 132
    Points
    132
    Par défaut Accés à une base de données Mysql
    Bonjour à tous. Voila mon problème. Je travaille sur une application qui doit s'éxécuter sur un serveur d'application GlassFish V3. Elle doit accéder à une base de données mysql.
    Comme je ne m'y connais pas beaucoup en développement côté serveur, j'ai tout d'abord développé cette application en utilisation JSE (une classe Main et tout). Ensuite j'ai crée un projet JEE sous Eclipse auquel j'ai intégré mes classes. Sauf la main que j'ai remplacé par une Servlet.
    Pas d'erreur de compilation mais les résultats ne sont pas là. Je me demande si la manière d'accéder à une BD mysql est différente en JSE sachant que j'ai téléchargé le driver de la base sur le site de mysql et que je l'ai ajouté en utilisant eclipse. Le bout de code que j'ai utilisé pour chargé la base est le suivant :
    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
    public static String request(String sqlRequest)
    			throws ClassNotFoundException, SQLException {
     
    		Class.forName("com.mysql.jdbc.Driver");
     
    		String url = "jdbc:mysql://localhost:3306/spark";
     
    		Connection con = DriverManager.getConnection(url, "root", "");
     
     
    		Statement stmt;
    		stmt = con.createStatement();
    		ResultSet rset = stmt.executeQuery(sqlRequest);
    		String result = new String("");
    		while (rset.next()) {
    			result = result + rset.getString(25)+"\n";
    		}
     
    		stmt.close();
    		con.close();
    		return result;
    Voila en essayant de changer de serveur pour un Tomcat 6. J'ai vu qu'il y aavit une exception SQLException qui était lancée lors de l'exécution de mon programme.
    J'ai aussi lu dans les spécifications de Glassfish V3 qu'il incluait des classes JDBC (ou je ne sais pas quoi)

    j'espère vraiment que quelqu'un pourra m'aider.

    merci d'avance.
    Q: ça sert à quoi Internet Explorer ?
    R: A télécharger Mozilla Firefox

  2. #2
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Peux-tu nous donner le détail de ton exception ?

    Travailles-tu dans un "Dynamic Web Project" ?

    As-tu référencé ton jar de driver dans les "JavaEE Module Dependencies" ?

  3. #3
    Membre habitué Avatar de astrotouf
    Profil pro
    Consultant informatique
    Inscrit en
    Avril 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2005
    Messages : 221
    Points : 132
    Points
    132
    Par défaut
    Alors :
    1. Pour l'exception c'est :
    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
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at Request.request(Request.java:12)
    	at MainServlet.processRequest(MainServlet.java:43)
    	at MainServlet.doGet(MainServlet.java:67)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    2. Oui j'ai crée un "dynamic web project"
    3. Pour les JavaEE dependencies, je ne l'ai pas fait. Je ne sais pas comment d'ailleurs. en fait, j'ai juste ajouter la JAR externe à partir d'eclipse à mon projet c'est tout.

    Je peux aussi vous donner le source de ma Servlet qui est le suivant :
    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
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class MainServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
    	protected void processRequest(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html; charset=UTF-8");
    		PrintWriter out = response.getWriter();
    		try {
    			String sqlRequest =  "select * from entite;";
    			String columns = request.getParameter("columns");
    			// Pour l'instant je ne vois pas l'utilité des tables.
    			// String tables = request.getParameter("tables");
    			String conditions = request.getParameter("conditions");
    			if (columns == null) {
    				if (conditions == null) {
    					sqlRequest = "select * from entite;";
    				} else {
    					sqlRequest = "select * from entite where" + conditions
    							+ ";";
    				}
    			} else {
    				sqlRequest = "select " + columns + " from entite where "
    						+ conditions + ";";
    			}
     
    			try {
    				out.println("<html>");
    	            out.println("<head>");
    	            out.println("<title>Servlet NewServlet</title>");  
    	            out.println("</head>");
    	            out.println("<body>");
    	            out.println("<p>"+Request.request(sqlRequest)+"</p>");
    	            out.println("</body>");
    	            out.println("</html>");
     
    	            //Parser.parse(Request.request(sqlRequest));
    			} catch (ClassNotFoundException ex) {
    				Logger.getLogger(MainServlet.class.getName()).log(Level.SEVERE,
    						null, ex);
    			} catch (SQLException ex) {
     
    			}
     
    		} finally {
    			out.close();
    		}
    	}
     
    	public MainServlet() {
    		super();
    	}
     
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
     
    		processRequest(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		processRequest(request, response);
    	}
     
    }
    Q: ça sert à quoi Internet Explorer ?
    R: A télécharger Mozilla Firefox

  4. #4
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    3. Pour les JavaEE dependencies, je ne l'ai pas fait. Je ne sais pas comment d'ailleurs. en fait, j'ai juste ajouter la JAR externe à partir d'eclipse à mon projet c'est tou
    C'est là, ton problème. Eclipse ne déploie pas ton jar avec l'application d'où le ClassNotFoundException.

    Tu as 2 solutions :
    • Référencer ton jar comme "JavaEE Module Dependencies", dans les properties du projet
    • Copier ton jar dans le répertoire lib de Tomcat


    La deuxième a l'avantage de rendre le driver disponible pour n'importe quelle application déployée. Il te permet aussi de développer avec les connxions par datasource.

  5. #5
    Membre habitué Avatar de astrotouf
    Profil pro
    Consultant informatique
    Inscrit en
    Avril 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2005
    Messages : 221
    Points : 132
    Points
    132
    Par défaut
    Je ne pensais pas pouvoir résoudre ce problème aussi vite.
    Tout est résolu.
    Merci beaucoup pour votre aide.
    Q: ça sert à quoi Internet Explorer ?
    R: A télécharger Mozilla Firefox

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

Discussions similaires

  1. GWT accès à une base de donnée Mysql
    Par inforedaster dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 22/11/2011, 23h20
  2. [Portlet] portlet avec un accès à une base de donné mysql
    Par prodit96 dans le forum Portails
    Réponses: 1
    Dernier message: 12/01/2009, 15h41
  3. [MySQL] Accés à une base de données MySQL
    Par apt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/10/2008, 19h35
  4. Accès à une base de données MySQL
    Par cybernikkos dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2007, 22h03
  5. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39

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