GWT et base de données MySQL
Bonsoir,
Après plusieurs tutoriaux et une période d'apprentissage de la techno GWT, je me lance dans un projet de site web personnel.
Pour ce site, j'ai besoin d'une base de données, j'ai choisi MySQL puisque je connais déjà. J'ai donc pris la dernière version d'easyPHP que j'utilise déjà pour les sites traditionnels.
Cependant, lorsque je réalise une connexion à la base depuis mon appli GWT, une exception est soulevée.
Voici le code :
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
| public List<LigneEtudesBean> ligneEtudes() throws Exception{
String pilote = "com.mysql.jdbc.Driver";
List<LigneEtudesBean> listeLigneEtude = new ArrayList<LigneEtudesBean>();
try{
Class.forName(pilote).newInstance();
Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/gregbase","root","");
Statement instruction = connexion.createStatement();
ResultSet resultat = instruction.executeQuery(SQL.requeteLigneEtudes);
while(resultat.next()){
listeLigneEtude.add(new LigneEtudesBean(resultat.getString("anneeScolaire"),
resultat.getString("etablissementScolaire"), resultat.getString("classeNiveau"), resultat.getString("anneeScolaire"),
resultat.getString("anneeScolaire"), resultat.getString("anneeScolaire"), resultat.getString("anneeScolaire"),
resultat.getString("anneeScolaire"), resultat.getString("anneeScolaire"), resultat.getString("anneeScolaire")));
}
}
catch (Exception e){
throw new Exception(e);
}
return listeLigneEtude;
} |
Voici la trace:
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 47 48 49 50 51 52 53 54
|
java.lang.Exception: java.sql.SQLException: java.lang.NoClassDefFoundError: java.net.InetAddress is a restricted class. Please see the Google App Engine developer's guide for more details.
at fr.GregSite.server.InterrogationBDD.ligneEtudes(InterrogationBDD.java:37)
at fr.GregSite.server.ServiceRPCImpl.ListeLigneEtudes(ServiceRPCImpl.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.sql.SQLException: java.lang.NoClassDefFoundError: java.net.InetAddress is a restricted class. Please see the Google App Engine developer's guide for more details.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:433)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at fr.GregSite.server.InterrogationBDD.ligneEtudes(InterrogationBDD.java:24)
... 37 more
1 août 2010 21:11:41 com.google.appengine.tools.development.LocalResourceFileServlet doGet
ATTENTION: No file found for: /favicon.ico |
Le problème semble venir du fait qu'une classe n'est pas autorisée par GWT.
Pourtant, lorsque j'ai commencé à me servir de GWT, l'on m'avais dis que sur la partie serveur, je pouvais mettre ce que je voulais niveau java.
Si tel n'est pas le cas, comment faites-vous pour utiliser une base de données sur une application GWT?
Merci d'avance
Grégory