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 :

GWT 2.0 / Jetty => restricted class


Sujet :

GWT et Vaadin Java

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut GWT 2.0 / Jetty => restricted class
    Bonjour à tous,

    Je développe un EJB déployé sur JBoss et un client ria avec GWT. Je fais communiquer les deux avec les "remoteService". Ca compile et ça se déploie sans problème. Mon soucis est au niveau de l'utilisation du plugin eclipse de google. Je n'arrive pas à exécuter ma "web application" à partir d'eclipse, c'est à dire avec un Jboss de lancer (ça ça marche) et Jetty de lancer (ça ça marche pas). En effet, j'utilise donc jndi et j'ai un problème de "restricted class" lorsque je le lance. J'ai donc deux questions :
    - Comment utiliser des bibiothèques "restreintes" du type jndi, naming, context.... avec Jetty ? (Je précise que je n'ai pas de problème de compilation (ni java, ni gwt!), simplement d'exécution coté serveur jetty).
    - Et puis j'aimerai aussi savoir, comment utiliser un autre serveur que jetty avec le plugin eclipse, c'est à dire JBoss par exemple. (ce qui m'éviterait d'avoir deux serveurs à lancer)

    Je précise encore que lorsque je copie le contenu de mon war GWT, dans le webapp d'un tomcat ou d'un jboss, ça fonctionne, mon problème est juste avec le plugin eclipse... c'est un peu laborieux de le copier à chaque fois et puis pour le debug aussi !

    Merci beaucoup.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java/GWT
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java/GWT
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    J'ai une configuration assez similaire à la tienne, à l'exception que mon serveur est un GlassFish. Pour communiquer avec ton EJB, tu dois ajouter appserv-rt.jar et javaee.jar (C:\Sun\SDK\lib) dans ton Java Build Path ainsi que dans "web application" (sous "Google" dans les propriétés du projet).

    Ensuite, dans ton Java Build Path, tu dois ajouter ton projet EJB dans l'onglet Projects.

    Voici ma classe qui communique avec mon EJB:

    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
    public class ClientSessionFactory {
    	private ClientSessionRemote m_userSession = null;
     
    	/**
             * Établissement de la connection avec le EJB.
             * Le serveur Web communique avec le EJB grace au JNDI.
             * Les propriétées de connection sont celles pour un serveur GlassFish.
             * 
             * @throws Exception
             */
    	public ClientSessionFactory() throws Exception {
    		Properties props = new Properties();
    		props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
    		props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
    		props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    		InitialContext ctxt= new InitialContext(props);
     
    		m_userSession = (ClientSessionRemote) ctxt.lookup("NOM");
    	}
    }
    Il te suffit donc de trouver les bonnes config pour un JBoss. (Remplacer NOM par le mappedName de ton Session Bean)


    Pour se qui est d'utiliser un autre serveur que Jetty avec le plugin éclipse, je suis également à la recherche d'un solution.

    J'espère que j'ai pu t'aider

  3. #3
    Membre éclairé

    Inscrit en
    Août 2002
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Août 2002
    Messages : 302
    Par défaut
    Je pense qu'il faudrait étudier l'option -noserver pour utilser un server autre que le serveur jetty embarqué.
    http://code.google.com/intl/fr-FR/we...Compiling.html

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Merci pour ce retour. Malheureusement j'ai toujours la même erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google  App Engine developer's guide for more details.
    Pourtant j'ai bien rajouté les deux jars...

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java/GWT
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java/GWT
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Par défaut
    Tu utilise app engine dans ton projet?

  6. #6
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    oui ! J'ai lu que pour utiliser jdni avec jetty il fallait faire une implémentation de ServletContainerLauncher, qui permet de déclarer les jars supplémentaire (jetty-naming). J'ai pas essayé pour le moment, je vais m'orienter vers la solution de nannoun (merci), je vous ferai le retour dès que je pourrai.

  7. #7
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Voilà la solution pour utiliser un seul serveur (dans mon cas JBoss).
    Je vous détaille mon projet :

    Au préalable :

    Un EJB project pouvant être déployé avec eclipse sur JBoss. Il propose des sessions beans.

    La partie cliente GWT :
    1. Création d'un projet de type "Dynamic web project" (et non pas Web application project de Google, le but étant de pouvoir le déployer avec eclipse sur JBoss) avec war à la place de WebContent
    2. Mise en place de l'environnement web / gwt : fichier gwt.xml, web.xml, meta... (perso j'avais créé un Web application project de Google avant, j'ai recopié tout les fichiers générés dans mon nouveau projet)
    3. Ajout "d'une nature google app" => propriété google du projet : cocher Use google app engine et use google web toolkit
    4. Normalement à ce stade le projet compile bytecode et javascript et le déploiement de l'application est possible, dans mon cas à l'adresse : http://localhost:8080/gestionnaireFi...FichesGwt.html
    5. Pour ne pas avoir à recompiler à chaque fois en javascript pendant le dev, il faut utiliser le run/debug google webapp d'eclipse en ajoutant des "program arguments" à la configuration, ils servent à utiliser un autre serveur que de jetty ou plutôt à ne pas utiliser jetty, dans mon cas :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      -noserver -port 8080 -startupUrl http://localhost:8080/gestionnaireFichesGwt/GestionnaireFichesGwt.html
    6. Après avoir demandé un run ou un debug, la vue "developement mode" va vous proposer une url à copier dans un navigateur.
    7. Après avoir installé le plugin nécessaire (perso le plugin plante avec chrome, j'utilise donc firefox si qqun à une info ?), il sera possible de débugger "de bout en bout" votre appli, c'est à dire de la partie gwt client jusqu'à vos ejb beans en passant par gwt server (à condition que le server soit demarré en debug!!)


    Je peux donner les svns de mes projets ejb et gwt si ça intéresse.

  8. #8
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Par défaut
    Bonjour,

    J'ai un petit souci avec ta solution teletexte.

    Voici ce que j'ai fait :

    Création de l'application google web.

    Création d'une appli web dynamic

    Copie des fichiers de google web vers web dynamic et ajout des librairies.

    Voici mon projet web dynamic après la copie :




    Après cette opération, j'essaye de compiler avec le "GWT Compile Project" et je me retrouve avec cette exception :

    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
    Compiling module com.mywebapp.TestTomcatDebugEnvironment
    [ERROR] Unexpected
    java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference
    	at com.google.gwt.dev.javac.JdtCompiler.getCompilerOptions(JdtCompiler.java:310)
    	at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.<init>(JdtCompiler.java:148)
    	at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:466)
    	at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:142)
    	at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:281)
    	at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:182)
    	at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:280)
    	at com.google.gwt.dev.Precompile.precompile(Precompile.java:502)
    	at com.google.gwt.dev.Precompile.precompile(Precompile.java:414)
    	at com.google.gwt.dev.Compiler.run(Compiler.java:201)
    	at com.google.gwt.dev.Compiler$1.run(Compiler.java:152)
    	at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:87)
    	at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:81)
    	at com.google.gwt.dev.Compiler.main(Compiler.java:159)
    J'ai également un problème lorsque j'essaye de mettre mon projet sous tomcat.

    Quelqu'un pourrait-il m'aider ou teletexte, pourrais-tu m'envoyer tes sources comme tu l'avais proposé?

    Merci beaucoup
    Images attachées Images attachées  

  9. #9
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Par défaut
    J'ai réussi à faire fonctionner le debug sous tomcat. Aucun problème donc de ce coté la. Seulement il me reste toujours impossible de compiler le projet pour mettre à jour les fichier javascript, j'ai toujours la même exception qu'auparavant.

    Quelqu'un pour m'aider?

    Merci!!

  10. #10
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Par défaut
    J'ai trouvé la solution. Il faut mettre l'app engine avant le web app libraries dans le build path

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/05/2013, 15h48
  2. gwt:run et jetty 503
    Par amine_en_france dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 15/04/2013, 22h26
  3. Utilisez Class.forName dans GWT
    Par Space23 dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 10/03/2009, 10h56
  4. import d'une classe sous gwtext dans un programme gwt
    Par dadoukhane dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 22/07/2008, 10h18
  5. Utilisation de la classe Collection avec GWT
    Par rnan dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 03/07/2007, 22h58

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