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

GWT et Vaadin Java Discussion :

probleme avec GWT et Hibernate


Sujet :

GWT et Vaadin Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut probleme avec GWT et Hibernate
    Bonjour,

    Je développe une web app en GWT. Gràce a hibernate j'ai généré mes objets persistant (j'utilise les annotations). J'ai une couche de DAO. Tous ça est coté serveur.

    A l'aide de RPC je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class AuthentificationServiceImpl extends RemoteServiceServlet implements
    		AuthentificationService {
     
    	public Boolean connect(String login, String password) {
    		AdminsDao adminDao = new AdminsDaoImpl();
     
    		return (Boolean)adminDao.checkLogin(login, password);
    	}
    }
    Le code de AdminsDaoImpl:

    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
     
     
    public class AdminsDaoImpl implements AdminsDao{
     
    	@Override
    	public boolean checkLogin(String login, String password) {
    		if (null == login || null == password) {
    			throw new IllegalArgumentException("Login and password are mandatory. Null values are forbidden.");
    		}		
     
    		Session session = HibernateUtil.currentSession();
     
    		// create a new criteria
    		Criteria crit = session.createCriteria(Admins.class);
    		crit.add(Restrictions.ilike("login", login));
    		crit.add(Restrictions.eq("pwd", password));
     
    		Admins admin = (Admins)crit.uniqueResult();
     
    		HibernateUtil.closeSession();
     
    		return (admin != null);
    	}
    et la parti création de la sessionFactory de HibernateUtil (j'ai l'impression de ça foire ici) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	 static {
    	   try {
    		   // Crée la SessionFactory
    		   sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
    	   } catch (HibernateException ex) {
    		   throw new RuntimeException("Problème de configuration : "
    				   + ex.getMessage(), ex);
    	   }
    	 }
    Et il me donne cette erreur:


    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
    SEVERE: [1242830238656000] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
    com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.Boolean com.client.view.AuthentificationService.connect(java.lang.String,java.lang.String)' threw an unexpected exception: java.lang.ExceptionInInitializerError
    	at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:360)
    	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:546)
    	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:166)
    	at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
    	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:487)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
    	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    	at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    	at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:306)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    	at org.mortbay.jetty.Server.handle(Server.java:313)
    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
    	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
    	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
    	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
    	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
    	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
    Caused by: java.lang.ExceptionInInitializerError
    	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
    	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111)
    	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)
    	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)
    	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
    	at com.server.database.util.HibernateUtil.<clinit>(HibernateUtil.java:14)
    	at com.server.dao.hibernate3.AdminsDaoImpl.checkLogin(AdminsDaoImpl.java:19)
    	at com.server.AuthentificationServiceImpl.connect(AuthentificationServiceImpl.java:15)
    	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.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
    	... 25 more
    Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
    	at java.security.AccessControlContext.checkPermission(Unknown Source)
    	at java.security.AccessController.checkPermission(Unknown Source)
    	at java.lang.SecurityManager.checkPermission(Unknown Source)
    	at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:76)
    	at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:98)
    	at java.lang.ThreadGroup.checkAccess(Unknown Source)
    	at java.lang.Thread.init(Unknown Source)
    	at java.lang.Thread.<init>(Unknown Source)
    	at java.util.TimerThread.<init>(Unknown Source)
    	at java.util.Timer.<init>(Unknown Source)
    	at java.util.Timer.<init>(Unknown Source)
    	at com.mysql.jdbc.ConnectionImpl.<clinit>(ConnectionImpl.java:208)
    Avez-vous une idée du problème.

    J'ai peut-être loupé un épisode pour l'intégration de hibernate, je n'ai fais qu'ajouter les jar au classpath...

    Merci

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Il me semble que tu ne peux pas faire de l'Hibernate sur Google App Engine, n'y attaquer une base MySQL d'ailleurs.

    et oui, certains savent lire les logs

    Pour info, tu ne peux pas avoir côté serveur de Thread (Timer est donc interdit) avec une application GAE (Ce que semble utiliser Hibernate et est à la source de la java.security.AccessControlException: access denied).

  3. #3
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Citation Envoyé par benwit Voir le message
    Il me semble que tu ne peux pas faire de l'Hibernate sur Google App Engine, n'y attaquer une base MySQL d'ailleurs.

    et oui, certains savent lire les logs

    Pour info, tu ne peux pas avoir côté serveur de Thread (Timer est donc interdit) avec une application GAE (Ce que semble utiliser Hibernate et est à la source de la java.security.AccessControlException: access denied).
    Bonjour,

    Sais-tu comment contourner le problème ?

  4. #4
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Quel problème ?

    • Utiliser Hibernate sur GAE : demander à google.
    • Utiliser MySQL sur GAE : demander à google.
    • Utiliser Timer sur GAE ? Côté serveur, demander à google d'autoriser les threads sinon utiliser le timer javascript côté client.



    Généralement, les limitations sont côté client (Javascript) et on utilise le serveur pour contourner. Là, ce sont des limitations côté serveur imposée par Google.

  5. #5
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    J'ai exactement la même erreur que l'auteur.

    Citation Envoyé par benwit
    Utiliser Timer sur GAE ? Côté serveur, demander à google d'autoriser les threads sinon utiliser le timer javascript côté client.
    Demander à Google, c'est ironique ou c'est paramétrable ? Et je ne vois pas comment utiliser à la place un Timer côté client

  6. #6
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Si c'est exactement la même erreur que l'auteur, c'est que tu veux outrepasser les limitations de GAE.

    • Pour MySQL, c'est pas possible sur GAE car la seule solution de persistance possible, c'est BigTable.
      Le seul moyen que je vois, c'est de faire des appels via http (et donc du code Java) à une base mysql hébergé ailleurs.

    • Pour Hibernate, actuellement ce n'est pas possible.
      Actuellement, pour JPA, JDO, c'est l'implémentation open source de JDO qui est retenue, à savoir Datanucleus qui permet d'éviter de coupler fortement son application à BigTable.

    • Pour les timers, dans certains cas, tu peut faire le timer côté client au lieu de côté serveur mais toutes les applications ne s'y prêtent pas.

    • Pour les threads, ce n'est pas possible.


    Pour mes remarques "Demande à Google", ce n'est pas paramétrable actuellement donc ils ne pourront rien pour toi.
    Cela peut être vu d'une manière légèrement ironique ... légère car je ne me moquais pas, c'est juste que s'ils ont pleins de demandes utilisateurs, peut être reviendront-ils sur certaines limitations ?
    Pour les threads, je ne vois pas pourquoi ils limitent vu qu'ils comptabilisent les ressources CPU. Pour le reste, c'est pas dans la philosophie de leur cloud car BigTable est beaucoup plus scalable que MySQL.

    Voila.
    Donc, si tu as la même erreur, je te conseille te revoir ton choix d'infrastructure car à l'impossible, nul n'est tenu

  7. #7
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Merci pour tes réponses.

    En effet, le but est d'utiliser MySQL mais comme tu peux le voir dans un de mes sujets. L'utilisation de GAE était une erreur de ma part puisque je débute en GWT et n'avais pas compris que GAE est en fait un serveur d'application allégé.

  8. #8
    Invité de passage
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Par défaut mème problème
    Bonjour tous le monde,

    Je pense que j'ai le mème problème je viens de faire une connection jdbc avec GWT dans ma classt MyUserServiceImpl j'ai le code suivant:

    public class MyUserServiceImpl extends RemoteServiceServlet implements
    MyUserService {

    private static final long serialVersionUID = 1L;

    private List<MyUser> userList = new ArrayList<MyUser>();

    public MyUserServiceImpl() throws SQLException, ClassNotFoundException {
    MyUser user = new MyUser();
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/mahdi";

    // Get a connection to the database for a
    // user named auser with the password
    // drowssap, which is password spelled
    // backwards.
    Connection cnx = DriverManager.getConnection(url, "root","root");
    Statement st = cnx.createStatement();
    String req="select * from etudient";
    ResultSet rs = st.executeQuery(req);
    while (rs.next()){
    //affichage sur le console
    System.out.print(rs.getString("nom"));

    user.setId(rs.getString("nom"));
    user.setUsername(rs.getString("prenom"));
    user.setNumberOfHits(rs.getString("adresse"));
    userList.add(user);}}


    et quant j'éxécute le code jobtiens l'érreur suivante:



    Initializing AppEngine server
    Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
    Successfully processed C:\wafim\workspace\de.vogella.gwt.helloserver\war\WEB-INF/appengine-web.xml
    Successfully processed C:\wafim\workspace\de.vogella.gwt.helloserver\war\WEB-INF/web.xml
    The server is running at http://localhost:8888/
    [WARN] Error for /de_vogella_gwt_helloserver/userService
    java.lang.ExceptionInInitializerError
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at de.vogella.gwt.helloserver.server.MyUserServiceImpl.<init>(MyUserServiceImpl.java:32)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
    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:351)
    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:212)
    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.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:191)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:288)
    at java.lang.Thread.init(Thread.java:332)
    at java.lang.Thread.<init>(Thread.java:377)
    at java.util.TimerThread.<init>(Timer.java:456)
    at java.util.Timer.<init>(Timer.java:71)
    at java.util.Timer.<init>(Timer.java:122)
    at com.mysql.jdbc.ConnectionImpl.<clinit>(ConnectionImpl.java:208)
    ... 38 more
    [WARN] Nested in java.lang.ExceptionInInitializerError:
    java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:191)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:288)
    at java.lang.Thread.init(Thread.java:332)
    at java.lang.Thread.<init>(Thread.java:377)
    at java.util.TimerThread.<init>(Timer.java:456)
    at java.util.Timer.<init>(Timer.java:71)
    at java.util.Timer.<init>(Timer.java:122)
    at com.mysql.jdbc.ConnectionImpl.<clinit>(ConnectionImpl.java:208)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at de.vogella.gwt.helloserver.server.MyUserServiceImpl.<init>(MyUserServiceImpl.java:32)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
    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:351)
    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:212)
    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)
    [WARN] Error for /de_vogella_gwt_helloserver/userService
    java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.ConnectionImpl
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at de.vogella.gwt.helloserver.server.MyUserServiceImpl.<init>(MyUserServiceImpl.java:32)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
    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:351)
    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)


    Qu'est le qu'un peut m'aider SVP
    Merci pour vous.

  9. #9
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Il ne faut pas confondre GWT et GAE (même s'ils sont tous les deux disponibles dans le plugin de Google)

    Si tu ne peux pas faire du mysql avec GAE, tu peux en faire côté serveur avec GWT puisque côté serveur (hors GAE), c'est du full Java.

    A la création d'un projet gwt, il ne faut pas cocher l'option GAE.

    Si le projet est déjà créé, il faut désactiver cette option dans les propriétés de ton projet (j'ai déjà mis une capture d'écran dans un autre post)

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Par défaut
    Bonjour à vous,

    Je développe également une application avec GWT et Hibernate. Pour cela, tu auras besoin de plusieurs chose :

    - Ne pas être dans un environnement GAE. Pourquoi pas chosir un simple tomcat, compiler ton application et déplacer le résultat du war dessus. Tout cela fonctionne à merveille normalement

    - Ensuite, installer une base de données MySQL sur le poste

    - Installer Hibernate, de manière classique (je détaille pas, plein de bons tutos pour ça)

    - Et alors, arrive les complications : GWT je peux pas fonctionner directement avec Hibernate car les objets transférés par le service ne peuvent pas passer par le service RPC... donc il faut mettre une architecture qui va te traduire les objets récupérés par hibernate : je te conseille Gilead qui me paraît la meilleure.

    Voici un très bon article qui explique tout ça : http://code.google.com/intl/fr/webto...hibernate.html
    Va directement à la partie "Using Gilead for Hibernate Integration"

Discussions similaires

  1. probleme avec ant et hibernate tool
    Par chady dans le forum Hibernate
    Réponses: 1
    Dernier message: 24/11/2009, 12h45
  2. Probleme avec Struts et Hibernate
    Par 0coco0 dans le forum Struts 1
    Réponses: 5
    Dernier message: 28/08/2008, 15h03
  3. Probleme avec hibernate
    Par ouedmouss dans le forum Hibernate
    Réponses: 6
    Dernier message: 06/06/2006, 20h42
  4. [EJB3][HIBERNATE] Probleme avec select max
    Par kristof_machin dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/04/2006, 13h05
  5. Problèmes avec Hibernate (sous Eclipse)
    Par Pierric dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/04/2005, 14h35

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