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 :
Voici la trace:
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 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; }
Le problème semble venir du fait qu'une classe n'est pas autorisée par GWT.
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 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
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
Partager