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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

Communication entre un jar embarqué et une classe de ma webapp


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Par défaut Communication entre un jar embarqué et une classe de ma webapp
    Bonjour à tous,

    Je ne sais pas si je poste vraiment au bon endroit, mais je travaille sous Weblogic (je pense que ma question est aussi valable sur Tomcat cela dit...).

    J'ai une question toute simple : est-il possible d'instancier une classe disponible sous le répertoire /classes de ma webapp dans une des classes archivées dans un jar embarqué sous /lib dans cette même webapp ?

    Ex :
    J'ai une archive utils.jar placée sous le répertoire /lib de ma webapp.
    Dans ce jar, j'ai une classe qui fait un appel du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    TableRefFilter tableFilter = null;
    try {
    	tableFilter = (TableRefFilter)
       Class.forName(
            "fr.myOrg.projectName.package.contrainte.GarantiesTableRefFilter")
                .newInstance();
    } catch (ClassNotFoundException cnfe) {
    	// La classe n'existe pas
    	logger.info("\n********** ERREUR : paramètre 'filter' "
    	+ "incorrect : la classe spécifiée n'existe " 
    	+ "pas.**********\n");
    } catch (InstantiationException ie) {
    	/* 
    	   La classe est abstract ou est une interface ou n'a
               pas de constructeur accessible sans paramètre
    	 */
    	logger.info("\n********** ERREUR : paramètre 'filter' " 
    	+ "incorrect : la classe spécifiée n'est pas " 
    	+ "instanciable ou ne dispose pas d'un " 
    	+ "constructeur sans paramètre accessible." 
    	+ "**********\n");
    } catch (IllegalAccessException e) {
    	// La classe n'est pas accessible
    	logger.info("\n********** ERREUR : paramètre 'filter' " 
    	+ "incorrect : la classe spécifiée n'est pas " 
    	+ "accessible.**********\n");								    	}									
    return tableFilter.accept(anAdaptation, occurrence);
    }
    Par ailleurs, ma webapp contient la classe :
    fr.myOrg.projectName.package.contrainte.GarantiesTableRefFilter.

    En gros est-ce que les classes de mon jar voient les classes de ma webapp ??
    Et est-ce nécessaire pour cela de déclarer mon jar dans le Classpath du serveur ?

    Merci pour votre aide !

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Ryo_san Voir le message

    En gros est-ce que les classes de mon jar voient les classes de ma webapp ??
    Oui: WEB-INF/lib et WEB-INF/classes forment une seul et unique classpath, donc toutes les classes qui y sont se voient mutuellement

    Et est-ce nécessaire pour cela de déclarer mon jar dans le Classpath du serveur ?
    Non, bien au contraire, si tu le fait passer au niveau Serveur, il ne verra plus les classes de la webapp.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Par défaut
    Merci beaucoup tchize_ pour ta réponse qui m'a bien éclairée !!

    J'avais justement déclarer ma lib dans le pré-classpath du serveur...

    Bon il s'avère que depuis que l'ai retirée, mes WEB-INF/classes ne voient pas les classes de ma lib, mais ça doit venir de ma conf interne, je vais voir...


  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    en cas de doutes, tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class.forName("......",true,Thread.currentThread().getContextClassLoader() );

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Par défaut
    Merci pour ces précisions tchize_ !!

    J'ai trouvé d'où venait mon problème, je déploie mes webapp depuis Eclipse et je n'avais pas coché ma lib dans les propriétés Java EE Module Dependency.

    C'est chose faite et ça tourne nikel !!


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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2010, 10h41
  2. Réponses: 0
    Dernier message: 30/06/2010, 12h31
  3. Réponses: 0
    Dernier message: 17/04/2009, 12h03
  4. Réponses: 2
    Dernier message: 06/03/2009, 09h39
  5. communication entre un projet DLL et une application
    Par ferry.jules dans le forum C++Builder
    Réponses: 95
    Dernier message: 22/05/2006, 20h06

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