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 :

declarer mon servlet gwt


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut declarer mon servlet gwt
    salut,
    j'ai une ambiguité à comprendre comment declarer mon service RPC
    ce que j'ai compris est qu'il faut declarer la servlet dans le fichier web.xml
    mais dans autres documents, j'ai vue qu'il fallait la declarer dans mon module(monModule.gwt.xml)
    autre chose, quel est l'interet de declarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @RemoteServiceRelativePath(path)
    dans l'interface synchrone de mon service RPC

  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
    Dans toutes les versions, il est nécessaire (pour la mise en production) que la servlet soit déclarer dans le web.xml.

    Dans certaines anciennes version de gwt, il falait également la déclarer dans le fichier du module mais plus nécessaire depuis la 1.6 (et peut être même avant)

    Dans le web.xml, on fait un lien entre une classe Java et un path d'url.
    La valeur de l'annotation, c'est celle du path mappé sur la servlet du service.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut
    Citation Envoyé par benwit Voir le message
    Dans toutes les versions, il est nécessaire (pour la mise en production) que la servlet soit déclarer dans le web.xml.

    Dans certaines anciennes version de gwt, il falait également la déclarer dans le fichier du module mais plus nécessaire depuis la 1.6 (et peut être même avant)

    Dans le web.xml, on fait un lien entre une classe Java et un path d'url.
    La valeur de l'annotation, c'est celle du path mappé sur la servlet du service.
    merci benwit pour la réponse,
    mais dans le web.xml, on declare la classe du servlet
    pourquoi alors utiliser l'annotation dans la classe java

  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
    GWT ne "vois" pas le fichier web.xml.
    Il a besoin pour la génération du javascript client du "path" pour fabriquer l'url du service.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut
    Citation Envoyé par benwit Voir le message
    GWT ne "vois" pas le fichier web.xml.
    Il a besoin pour la génération du javascript client du "path" pour fabriquer l'url du service.
    merci benwit
    c'est plus claire maintenat.
    juste une dernière question: est ce que l'annotation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @RemoteServiceRelativePath
    vient de remplacer la declaration dans le module

  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
    Non, l'annotation remplace plutôt ceci :

    Avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public interface HelloService
    {
    ...
    }
     
    HelloServiceAsync service = (HelloServiceAsync) GWT.create(HelloService.class);
     
    ServiceDefTarget endpoint = (ServiceDefTarget) service;
    endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() +"/HelloService");
     
    service.sayHello(new AsyncCallback() {...} ) ;

    Après, l'annotation évite de définir manuellement l'url du service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @RemoteServiceRelativePath("HelloService")
    public interface HelloService
    {
    ...
    }
     
    HelloServiceAsync service = (HelloServiceAsync) GWT.create(HelloService.class);
     
    service.sayHello(new AsyncCallback() {...} ) ;



    Dans les premières versions, je ne sais pas où il se servait de la déclaration de servlet dans le module puisque nécessaire uniquement pour la partie serveur. Peut être pour leur jetty ou tomcat embarqué pour l'execution en hosted mode ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/07/2009, 09h02
  2. Réponses: 1
    Dernier message: 31/10/2008, 16h58
  3. Executer mon servlet
    Par Goundy dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 16/04/2008, 19h21
  4. [SERVLET][EJB][Noob]Utiliser mon SERVLET avec mon EJB
    Par Devil666 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 15/04/2005, 13h45
  5. [debutant] tomcat trouve pas mon servlet
    Par zerovolt dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 28/08/2004, 15h18

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