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 :

Executer code sur le serveur avec Runtime Exec pour GWT


Sujet :

GWT et Vaadin Java

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut Executer code sur le serveur avec Runtime Exec pour GWT
    Bonjour,

    Je voudrais exécuter des paramètres dans un shell unix depuis une interface GWT.

    Je m'explique, le user remplie quelques paramètres dans une simple interface, il clique "lancer" je récupère ces paramètres, valide les données entrées, et je devrais les exécuter sur le terminal... sauf que Runtime Exec ne marche pas sur la GWT qui est surtout du javascript/html...

    Existe t-il une solution ?

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Bonsoir,

    Pour pouvoir lancer un traitement sur un serveur en indiquant des paramètres dans une interface web, il faut faire intervenir un peu de code côté serveur.
    Donc il te faut : une interface cliente en GWT avec de quoi saisir tous tes paramètres, un bout de code côté serveur en java qui va appeler ton script et un service RPC entre les 2

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut
    Bonjour,
    C'est exactement ce que j'ai compris depuis que j'ai publié ce poste, j’étais donc parti sur GWT RPC ...

    Je pense que j'ai developpé les deux parties (client et serveurs) mais faudra que je comprenne le fonctionnement des url, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	public ShellExecuterServiceAsync getShellExecuterServiceInstance(){
    		if (ExecuterService == null) {
    			//instanciation du service
    			ExecuterService = (ShellExecuterServiceAsync) GWT.create(ShellExecuterService.class);
    			//Specification de l'url que le service d'implementation utilise
    			((ServiceDefTarget)ExecuterService).setServiceEntryPoint(GWT.getModuleBaseURL()+"ShellExecuterService");
    		}
    		return ExecuterService;
    	}
    Je devrais appeler ma classe "ShellExecuterService" et donc je procède à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((ServiceDefTarget)ExecuterService).setServiceEntryPoint(GWT.getModuleBaseURL()+"ShellExecuterService");
    Et dans mon Momy.gwt.xml j'ai ajouté la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<servlet path="/ShellExecuterService" class="com.mycompany.project/server.ShellExecuterServiceImpl" />
    chose qui me retourne un 404 not found.
    En voila l'arborescence de mon projet, comment est ce que je modifier la ligne pour que le serveur trouve ma classe ?


  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Pas besoin de définir toi-même l'url de ton service, GWT se charge de définir tout ce qui est nécessaire au bon fonctionnement du service RPC.

    une fois les 3 fichiers créés (service, serviceAsync et serviceImpl), tu n'as qu'à indiquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServiceAsync s= (ServiceAsync) GWT.create(Service.class);
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s.methodeDuService(paramètres, callback)
    et éventuellement ajouter une entrée dans le web.xml si ton IDE ne l'a pas déjà fait pour toi

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut
    Juste qu'on soit sur la meme longueur d'onde, l'entrée dans mon web.xml devrait ressembler à quoi ? (suivant mon exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <servlet>
      <servlet-name>shellExecuterServiceImpl</servlet-name>
      <servlet-class>com.mycompany.project/server.ShellExecuterServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>shellExecuterServiceImpl</servlet-name>
      <url-pattern>/com.mycompany.project.Momy/ShellExecuter/ShellExecuterService</url-pattern>
    </servlet-mapping>
    C'est ça ?

    Parceque quand j'essaie d'executer ça j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       [WARN] failed shellExecuterServiceImpl
    java.lang.NoClassDefFoundError: IllegalName: com.mycompany.project/server.ShellExecuterServiceImpl

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut
    Bon je l'ai résolu.
    Effectivement l'entré ajouté dans web.xml était correcte, mais je recevais toujours une erreur du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.google.gwt.user.client.rpc.ServiceDefTarget$NoServiceEntryPointSpecifiedException: Service implementation URL not specified
    Donc j'ai reutilisé la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			((ServiceDefTarget)ExecuterService).setServiceEntryPoint(GWT.getModuleBaseURL()+"ShellExecuter/ShellExecuterService");
    pour appeler la servlet, et donc mon callback retourne le message d'execution avec succès.

    Merci pour votre temps et attention.

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

Discussions similaires

  1. Impossible de lancer un executable avec runtime.exec
    Par emardjean dans le forum Général Java
    Réponses: 2
    Dernier message: 13/09/2014, 21h53
  2. Executer code sur un nouveau terminal en C
    Par progamer54 dans le forum Linux
    Réponses: 8
    Dernier message: 28/03/2006, 13h31
  3. Installation de PostGrepSQL sur un serveur avec SQL2000
    Par ddenis dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/10/2005, 16h29
  4. Kmail veux pas marcher sur mon serveur avec postfix
    Par jean christophe dans le forum Réseau
    Réponses: 4
    Dernier message: 06/05/2005, 01h02
  5. [Sybase] Execution procédure sur autre Serveur
    Par MashiMaro dans le forum Sybase
    Réponses: 2
    Dernier message: 03/02/2004, 10h45

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