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

JOnAS Java Discussion :

Service Jonas personnalisé + MBean JMX = Context introuvable


Sujet :

JOnAS Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Service Jonas personnalisé + MBean JMX = Context introuvable
    Bonjour à tous,
    Je me retrouve confronté à un gros souci sous JOnAS que je ne sais résoudre... Si une âme charitable peut m'offrir son aide, ca serait génial (pour moi ).
    Pour info, je travaille actuellement sous JOnAS 5.1

    J'ai donc créé un service sous JOnAS. Celui-ci fonctionne très bien et est lancé au démarrage de JOnAS. Jusque là tout va bien. Ce service crée un MBean sous JOnAS qui doit faire appel à un MBean via JMX situé sur un serveur JBoss, à intervalles réguliers.
    Par conséquent j'utilise donc dans le code de mon MBean sous JOnAS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    JMXConnector jmxc = JMXConnectorFactory.connect(url_jmx_jboss);
    MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
    response = mbsc.invoke(object_name, method_name, params_method, signs_method);
    Ce code là fonctionne très bien dans une application lourde. Cependant ici, lors de la création du JMXConnector, une exception est levée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Failed to connect to the JMX Service: Failed to retrieve RMIServer stub: javax.naming.NoInitialContextException: Cannot instantiate class: org.ow2.carol.jndi.spi.VirtualJNDIContextFactory [Root exception is java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.VirtualJNDIContextFactory]
    Je me trouve un peu bloqué ici car je ne vois pas comment récupérer un Contexte viable pour pouvoir exécuter mon code.
    Merci d'avance pour votre aide !

  2. #2
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    En fait, tu viens de tomber sur un des problemes de JNDI dans le monde OSGi: il fait l'hypothese que toutes les classes qu'il va vouloir charger sont disponibles dans le Thread Context ClassLoader.

    Cette assomption n'est pas vraie dans un monde OSGi (ce serait trop facile ).

    Bon, la solution maintenant
    Ca se passe en 2 parties:

    1. Autoriser ton bundle à acceder aux classes de carol (à ajouter dans ton manifest)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DynamicImport-Package org.ow2.carol.*
    2. Encadrer ton code en positionnant un bon TCCL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Ici on recupere le ClassLoader de ta classe (== ton bundle normalement)
    ClassLoader theGoodOne = getClass().getClassLoader();
    ClassLoader old = Thread.currentThread().getContextClassLoader()
    try {
      Thread.currentThread().setContextClassLoader(theGoodOne);
      JMXConnector jmxc = JMXConnectorFactory.connect(url_jmx_jboss);
    } finally {
      Thread.currentThread().setContextClassLoader(old);
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Je te remercie de ta réponse. Ca a totalement résolu mon problème.
    J'ai encore du mal avec l'OSGi, car néophyte

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je savais que la réponse était pas loin

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

Discussions similaires

  1. [RIA Services] Load d'un domain contexts avec plusieurs Where()
    Par abbepierre94 dans le forum Silverlight
    Réponses: 7
    Dernier message: 02/11/2011, 22h41
  2. Problème Service JOnAS
    Par huntghost dans le forum JOnAS
    Réponses: 1
    Dernier message: 06/07/2011, 17h01
  3. Problème mbeans jmx
    Par wiss85 dans le forum Général Java
    Réponses: 1
    Dernier message: 03/02/2010, 22h25
  4. Réponses: 4
    Dernier message: 22/10/2008, 18h54
  5. [Plugin][Jonas]Eclipse et Web services
    Par Abik dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 17/01/2005, 19h22

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