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 :

Erreur - log SEVERE: [1276446191203000]


Sujet :

GWT et Vaadin Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Erreur - log SEVERE: [1276446191203000]
    Bonjour à tous,

    Tout d'abord j'espère que je post dans la bonne section, si ça n'est pas le cas je m'en excuse.

    Alors j'utilise
    * GWT 2.0.0
    * Comme package j'utilise celui de MyWebApp (celui du tuto)
    * Eclipse Ganymède Version: 3.4.2 Build id: M20090211-1700

    Alors voici ce que je désire faire :

    J'ai créé un projet java qui crée une ressource à partir de Wikipédia. Cette resource contient des liens que je fabrique et qui lie chaque mot d'un paragraphe. Par exemple si le paragraphe est : "Le chat boit du lait".

    Je fait appel à un antidictionnaire qui supprime "Le" et "du" ensuite les liens crées sont chat-boit, chat-lait, boit-lait.

    Ce lien est un type que je crée et s'exprime de la manière suivante :
    Link L1 = new Link ("String s1", "String s2", "String relation", int poids) ;

    Ensuite j'ai fait des algo de recherche qui permettent de retourner un mot en fonction des mots que l'on a ajouter au préalable dans une ArrayList. En faite mon but est de fournir des mots à un utilisateur en fonction des mots entrés dans une ArrayList.

    Maintenant j'utilise GWT pour mettre tout ça dans une relation serveur-client.

    Mon problème :
    Je m'inspire du tuto MyWebApp qui vous fait entrer votre nom et retourne bonjour ainsi que des infos sur votre browser.
    Mon souci est que lorsque je fais appel à ma classe Link Eclipse me met un tas d'erreur que je ne comprends pas.

    Étant débutant en GWT je vous remercierai de m'expliquer clairement si vous arrivez à comprendre l'erreur suivante :

    13 juin 2010 16:23:11 com.google.appengine.tools.development.ApiProxyLocalImpl log
    SEVERE: [1276446191203000] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
    com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.mycompany.lexicalapplication.client.GreetingService.greetServer(java.lang.String)' threw an unexpected exception: java.lang.NoClassDefFoundError: resource/LemmeAssociation
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
    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:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121)
    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:70)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352)
    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:211)
    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.NoClassDefFoundError: resource/LemmeAssociation
    at com.mycompany.lexicalapplication.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:23)
    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)
    ... 30 more
    Caused by: java.lang.ClassNotFoundException: resource.LemmeAssociation
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 37 more

    Voilà je vois bien que le problème survient lorsque je fait appel à l'objet LemmeAssociation (qui est la class où j'exécute mes algorithmes de recherche, où je fait appel à Link, etc ...), j'ai bien importé mon package et il n'y aucune erreur avant l'exécution de l'application, donc je ne comprends rien...

    merci à tous ceux qui pourront m'aider.

  2. #2
    Membre averti
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Points : 417
    Points
    417
    Par défaut
    Quelle est la classe Link ? Peux-tu donner son package exacte ?

    Si c'est le Link que GWT fournit côté client, alors dans ce cas ton erreur est normal.

    tu ne peux pas utiliser de classe GWT qui sont déstinées à être utilisé exclusivement côté client, côté serveur.

    Link ne peut pas être utilisé dans ta servlet car les Servlet se trouve côté serveur.

    Tu dois créer tes Objets métier côté serveur, les envoyer côté client et construire ton interface côté client avec tous tes objets.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    En faite j'ai mis la class Link dans un package qui s'appelle resource, ce package que j'ai importé dans GWT. Link n'est en aucun cas fournit par GWT, c'est moi qui l'ai crée de toute pièce.
    En faite c'est j'essaie d'appeler cette classe (en passant par la classe LemmeAssociation) dans GWT.

  4. #4
    Membre averti
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Points : 417
    Points
    417
    Par défaut
    Je ne connais pas LemmeAssociation et je ne la vois pas dans la Javadocs GWT.

    Quelle est cette classe ?

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    En faite peut être que je m'exprime mal, j'ai crée toute ces classes (Link, Ressource, LemmeAssociation, etc ...) que j'ai mis dans un package resource, et que j'ai importer dans GWT.
    Et le truc c'est que je veux utiliser mes programmes du package resource dans gwt.
    L'importation s'est effectué avec succès mais dès que je crée un objet du package resource (qui n'est pas donnée) et bien ça me donne les erreurs que j'ai affichées plus haut.

    Si tu veux je peux t'envoyer le package resource comme cela t'y verras peut être plus clair.

    PS : je te remercie de te pencher sur mon problème car c'est un projet que je dois rendre à la fin de la semaine.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Voila c'est toutes mes classes, par contre

    /!\ 1- Il faut que tu crées un package et que tu l'importes tout dans l'application GWT.

    2 - que tu telecharges le dictionnaire suivant : http://infolingu.univ-mlv.fr/Donnees...hargement.html

    /!\ prends bien le dernier c'est à dire celui en anglais encodé en utf-8.

    Et je pense qu'il va falloir te constituer une ressource (ajoutes 1 ou 2 mots pas plus) en lançant create ressource dans la classe ressource.

    Si t'as des questions n'hésites pas, et je te serais reconnaissant de ne pas distribuer les classes.
    En te remerciant pour toute ton aide.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre averti
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Points : 417
    Points
    417
    Par défaut
    Je veux bien t'aider, mais désolé je ne vais pas avoir le temps de faire tous les tests que tu souhaite.

    En fait je pense que ton problème se trouve au niveau de ton classPath.

    Vérifie les dépendances de ton projet.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Hum, bah je pense que mon classpath est bon sinon eclipse ne se lancerait même pas non ?

    Et puis mes 2 projets marchent bien indépendamment mais dès que je fais appel a mes classes ça plante tout.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Dis je pensais à un truc dans mon projet resource, j'utilise des fichiers qui sont sur le HDD,comme par exemple le dictionnaire.

    Pour l'appeler je crée un nouveau dictionnaire dans la classe où j'en ai besoin, et je met le path au moment de la création.
    Tout ça marche très bien, mais je me disais, si je fais appel à ce fichier dans le serveur est-ce-que ça peut faire des problèmes ?

    Et si oui (en faite je pense que ça y est quand même pour quelque chose) comment je peux faire ?

  10. #10
    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
    Points : 4 265
    Points
    4 265
    Par défaut
    Les classes que tu ecris en Java, tu les mets où tu veux selon ce que tu veux faire.

    Si c'est du code Java qui ne peut pas être traduit en Javascript, il est obligatoirement côté serveur.
    Si c'est du code Java qui n'a pas besoin d'être connu du serveur, tu le mets dans la partie cliente.
    Si c'est du code Java qui doit être utilisé des deux côtés soit parce qu'il transite entre les deux, soit simplement parce que tu veux qu'il soit utilisable des deux côtés, il devra donc être compilé à la fois en Javascript par le compilo GWT et en bytecode par le compilo Java.

    Pour ce faire, le mieux en effet est de le mettre dans un autre dossier. Chez toi, cela semble être ressources. Il ne faut pas oublier d'inclure ce package dans ton module xml (balise source)
    Pour des fichiers de ressources, soit tu les charges côté serveur et tu envoi leur contenu par RPC; soit tu les charges côté client (s'ils sont pas trop gros) via le mécanisme de ClientBundle.

  11. #11
    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
    Points : 4 265
    Points
    4 265
    Par défaut
    Bon, j'ai donné un coup d'oeil à ton code Java.

    J'ai pas vu de GWT là dedans donc on peut pas te dire précisément ce qui ne va pas.

    En revanche, je peux te dire que mis à part Entry et Link (si tu enlèves l'import inutile à sunw.io.Serializable) qui pourraient être traduite par GWT.
    Aucune des autres ne peut l'être parce que tu fais référence à tes classes de l'API io de Java et cela, GWT ne peut pas puisque en JS, tu n'as pas accès aux fichiers.
    Dans ce cas, ces classes doivent rester côté serveur et il te faut créer des classes pour faire transiter les données entre serveur et client.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Salut,
    merci de tes réponses elles m'aident un peu,
    en faite les classes que j'ai mises sont un projet java à part et je veux les utilisées dans avec GWT, pour ce faire j'ai importé le tuto MyWepApp fourni. Donc coté GWT in n'y a que le tuto.

    Pour mon projet j'utilise l'extends serializable car il met sert à sauver et charger la ressource que j'ai sauver sur mon HDD et construite dans la classe ressource.

    Et donc mon but c'est :
    de charger la ressource qui se situe sur mon HDD à l'aide de l'extends serializable, et appliquer les algo de recherche que j'ai mis dans la classe LemmeAssociation sur cette ressource et sur les mots qui auront été saisies par le client.

  13. #13
    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
    Points : 4 265
    Points
    4 265
    Par défaut
    Je comprends bien que ton :
    TaClasse extends java.io.Serializable
    soit nécessaire

    mais

    java.io.Serializable != sunw.io.Serializable

    Ce sont deux classes différentes.
    GWT comprend java.io.Serializable mais ne comprendra pas sunw.io.Serializable

    Donc si tu n'as pas besoin de sunw.io.Serializable, tu peut enlever son import.
    (CTRL+SHIFT+O dans eclipse)

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Ok, très bien compris,
    mais j'aimerais ton avis, tu vois dans la classe LemmeAssociation je charge un dictionnaire que j'ai mis en lien et dans ressource je charge une ressource que j'ai fabriqué et je pense que ça pose problème lorsque je les utilisent dans GWT,
    donc je crois que c'est cela qui affiche l'erreur, t'aurais une idée pour les charger dans le serveur GWT ??

  15. #15
    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
    Points : 4 265
    Points
    4 265
    Par défaut
    Il faut que tu fasses avec GWT uniquement ton interface graphique.

    Tu écris des interfaces de services synchrone et asynchrone pour les données dont tu as besoin dans l'interface graphique.
    C'est juste des signatures de méthodes avec des paramètres et un résultat.
    Attention à ce que les types des paramètres et de résultat soit convertible en JS (package client ou shared)

    Tu écris ensuite la classe d'implémentation correspondant au service côté serveur.

    Si le chargement des données est propre à l'utilisateur, tu peux les mettre dans une session. Si les données sont propre à l'application, tu les stockes au niveau de l'application (unique bien entendue) et c'est la classe d'implémentation du service qui les demande à l'application.

Discussions similaires

  1. site qui s'affiche pas , pas d'erreur log
    Par vodkline dans le forum Apache
    Réponses: 2
    Dernier message: 01/12/2014, 15h31
  2. Erreur Log dans Eclipse Android
    Par nabil.brarou dans le forum Android
    Réponses: 1
    Dernier message: 12/08/2013, 23h31
  3. Sortie script dans erreur.log et stdout.log
    Par altair8080 dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 29/05/2012, 14h58
  4. avoir les log d'erreur mysql
    Par simoryl dans le forum Administration
    Réponses: 4
    Dernier message: 06/09/2005, 14h24
  5. [Oracle 8i/Fichier de log] - fichier log pour analyse erreur
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 4
    Dernier message: 25/01/2005, 19h06

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