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

Entrée/Sortie Java Discussion :

[ClassLoader] Charger une classe extérieure au projet dynamiquement


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut [ClassLoader] Charger une classe extérieure au projet dynamiquement
    Bonjour à tous,

    Je dispose d'une application J2EE et j'aimerai charger un .class extérieur à mon projet, c'est à dire autre part que dans WEB-INF/classes/

    Pourquoi ? Parce ce .class pourra être modifié sans avoir à redémarrer le serveur d'application (Tomcat). Donc à chaque passage dans une méthode, j'aimerai récupérer cette classe extérieure au projet.

    Si je la mets dans WEB-INF/classes/, elle sera chargée par le class loader de Tomcat (ou de la web application) dès le lancement de l'appli et ne sera pas mise à jour en "direct live" si je glisse le .class dans WEB-INF/classes/ pendant que le serveur tourne. Suis-je clair ?

    Une solution ?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut
    Ou alors, peut-on forcer la mise à jour d'une classe dans le ClassLoader ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Oui tu es très clair, et le sujet a déjà été abordé car classique : cela revient à implémenter la gestion de plugins.

    La solution est dans l'utilisation de la classe URLClassloader:

    Va voir les threads suivants:
    Probleme de Classloader hierarchie

    [Résolu] [Stratégie][Classloader] presque un plugins

    Et fait une recherche globale sur URLClassloader

    Jacques Desmazières

  4. #4
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut
    Ok, merci bien.
    J'avais déjà lu des trucs sur l'URLClassloader

    Mais en fait, est-il possible juste de rafraichir l'application class loader tout simplement.
    Je dispose de .class, que je veux mettre à jour "à chaud" sans relancer Tomcat par exemple.

    Tu vois le problème ?

Discussions similaires

  1. Charger une classe dans le classloader courant
    Par hugo123 dans le forum Général Java
    Réponses: 9
    Dernier message: 10/06/2008, 14h49
  2. importer une classe dans mon projet
    Par dietrich dans le forum Delphi
    Réponses: 1
    Dernier message: 17/07/2006, 09h57
  3. Réponses: 1
    Dernier message: 07/09/2005, 22h15
  4. Réponses: 18
    Dernier message: 10/02/2005, 13h22
  5. Réponses: 2
    Dernier message: 20/01/2004, 14h27

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