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

Tomcat et TomEE Java Discussion :

service web avec plugins ajoutés dynamiquement


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut service web avec plugins ajoutés dynamiquement
    Bonjour,
    voici mon projet :
    j'ai un service web "parsedata" qui tourne sous tomcat 6, java 1.6.0.4, jaxws2.1.3.
    il est dans le package fr.xx.xy.
    Son déploiement se déroule bien.
    Ce service web, en fonction d'un paramètre qu'il reçoit (String), va chercher la présence d'une classe dans un répertoire particulier et appeler une méthode de cette classe.
    Si je mets ma classe dans le package fr.xx.xy.plugins, que je compile et déploie le tout, je n'ai pas de souci : le service web trouve cette classe et exécute la méthode désirée.

    Par contre si je déploie mon service web sans le répertoire plugins et que je mets dans un jars le package fr.xx.xy.plugins et que je mets celui-ci dans le répertoire shared/lib de tomcat par exemple.....mon service web ne trouve pas la classe désirée, même après un restart de tomcat.

    Pourriez-vous m'indiquer comment rendre accessible dynamiquement de nouvelles classes à mon service web SVP?

    L'objectif est d'avoir un service web qui tourne en permanence et de lui rajouter dynamiquement de nouvelles capacités, sans avoir à réinstaller celui-ci.

    merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut webservice, plugin
    d'accord mon message ne fait pas rêver ni même mon titre mais j'étais grave à la bourre hier soir
    je recommence
    voici la structure de mon service web qui fonctionne comme je le souhaite :
    $CATALINA_HOME/wabapps/parserPlaGe/WEB-INF/classes/fr/xx/xy/ParseData.class
    $CATALINA_HOME/wabapps/parserPlaGe/WEB-INF/classes/fr/xx/xy/PluginParserInterface.class
    $CATALINA_HOME/wabapps/parserPlaGe/WEB-INF/classes/fr/xx/xy/plugins/Plugin1.class
    $CATALINA_HOME/wabapps/parserPlaGe/WEB-INF/classes/fr/xx/xy/plugins/Plugin2.class
    Les classes Plugin1 et Plugin2 implémentent toutes deux PluginParserInterface.class
    La méthode exposée en tant que service web se trouve dans ParseData.class, elle prend en argument un String qui vaut Plugin1 ou Plugin2 (renvoie un message d'erreur si différent). En fonction de la valeur de l'argument, c'est la méthode parseRawFile() de la classe Plugin1 ou Plugin2 qui sera exécutée.

    Si maintenant je rajoute dans cette arborescence une classe Plugin3.class qui implémente PluginParserInterface, alors si je fournis comme argument la String "plugin3" au web service ParseData alors ce sera la méthode parseRawFile() de la classe Plugin3 qui sera exécutée.

    ça ça marche nickel!!!!

    ce que je voudrais maintenant, c'est mettre les plugins dans une arborescence différente de celle du service web ($CATALINA_HOME/wabapps/parserPlaGe/WEB-INF/classes/fr/xx/xy/).
    Dans mon idée, mon service web serait déployé avec un war alors que les plugins seraient soient copiés dans une arborescence quelconque de tomcat (bruts ou dans un jar).

    Maintenant, la question c'est comment réaliser ça?

    J'ai testé en archivant les plugins dans un jars et en mettant celui-ci dans $CATALINA_HOME/shared/lib...mais sans succès....

    une idée?

    Une question : je déploie mon service web à l'aide d'un fichier war. Au redémarrage de tomcat, celui-ci vérifie-t-il que l'arborescence déployée correspond bien à l'arborescence trouvée dans le war? SI oui, réinstalle-t-il l'appli pour la rendre identique au contenu du war?

    merci d'avance pour vos lumières.

    je voudrais installer d'une part le service web comme décrit précédemment et mettre les plugins à disposition du service web autre part, dans une arborescence qui me soit accessible

    PS : la détection des nouveaux plugins se base sur la source dvp http://java.developpez.com/sources/?page=divers#plugins. Pour rechercher les plugins, je donne comme argument à PluginInspector(package où chercher, classe implémentée dans le plugin) : PluginInspector("fr.xx.xy.plugins",fr.xx.xy.PluginParserInterface.class)

Discussions similaires

  1. Service Web avec Axis et types complexes.
    Par Skyman37 dans le forum Services Web
    Réponses: 17
    Dernier message: 13/01/2011, 09h28
  2. VBA : Service Web avec SOAP et HTTPS
    Par uftu1 dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/09/2007, 12h02
  3. deployer un service web avec axis 1.4 et websphere
    Par leo13 dans le forum Websphere
    Réponses: 1
    Dernier message: 10/05/2007, 10h45
  4. Déployer un service web avec weblogic 5.1
    Par karimspace dans le forum Weblogic
    Réponses: 1
    Dernier message: 13/02/2007, 17h49
  5. services web avec builder 6
    Par Seb des Monts dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/11/2006, 10h18

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