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

Java Discussion :

Class.forname et serveur d'application


Sujet :

Java

  1. #1
    Membre régulier Avatar de zolotaya
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 93
    Points : 78
    Points
    78
    Par défaut Class.forname et serveur d'application
    Bonjour à tous,

    Après quelques recherches, je n'arrive pas à trouver de solution à un problème.
    Je crée un war à l'aide de maven.
    J'ai des dépendances du genre :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!-- Ajout récent mais pas possible de l'enlever -->
    <dependency>
       projetB
    </dependency>
     
    <dependency>
       projetA
       <exclusion>
          projetB
       </exclusion>
    </dependency>

    Dans mon projetA (un jar sur lequel je n'ai pas accès), je me retrouve avec le bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
    Class.forname("ProjetB.maClasse");
    //code qui ne fonctionne pas
    } catch (ClassNotFoundException) {
    // Code qui fonctionne
    }
    J'ai rajouté l'exclusion maven pour le projetA mais ce n'est pas suffisant. Je souhaiterai pouvoir dire à mon projetA de ne pas tenir comptedu projetB et continuer à passer dans le catch. A noter que je n'ai pas accès aux sources ni de l'un ni de l'autres....

    Quelqu'un a déjà eu un problème similaire, si oui comment l'avez-vous résolu ? Le war est déployer à l'aide d'un serveur d'application tomcat.

    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Euh, c'est la merde comme situation, ça.

    Les seules solutions possibles ressemblent à ça : charger le jar du projetB dynamiquement à l'aide d'un URLClassLoader. Ainsi projetB ne sera pas chargé au moment où projetA l'est, et en fait projetB ne sera pas accessible du tout à projetA.

    Mais cela signifie que ton code doit demander le chargement dynamique de projetB, et se servir de projetB à partir du ClassLoader qui l'a chargé, autrement dit sans faire référence à ses classes et uniquement par réflexion. Cela signifie aussi que ton war doit fournir le jar de projetB quelque part, mais pas avec les autres dans son classpath.

    Et non, j'ai aucune idée de comment exprimer ça en Maven. Pour un début t'as qu'à faire comme si le jar de projetB était une image JPEG : c'est pas une dépendance c'est un fichier normal qui est dans la webapp.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Il faut retirer projetB de tes dépendance, il n'y a pas d'avance. Il n'y a pas d'option en java (et ça n'a rien à voir avec maven) pour dire "je veux que le jar soit présent mais en fait qu'il ne soit pas là. Soit il est là, soit il ne l'est pas.

  4. #4
    Membre régulier Avatar de zolotaya
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 93
    Points : 78
    Points
    78
    Par défaut
    Hello,

    Merci pour vos réponse. Je vais dans ce cas mettre à jour mon projet pour me passer du projetA.

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

Discussions similaires

  1. executer class main dans un serveur d'application
    Par herguem dans le forum Java EE
    Réponses: 3
    Dernier message: 24/07/2009, 08h10
  2. Réponses: 2
    Dernier message: 01/06/2009, 19h19
  3. Différence entre SGBD et Serveur d'application
    Par WOLO Laurent dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/06/2003, 08h47
  4. Serveur d'applications Java
    Par foxrol dans le forum Java EE
    Réponses: 3
    Dernier message: 17/05/2003, 00h49
  5. serveur d'application
    Par nass_03 dans le forum JBuilder
    Réponses: 3
    Dernier message: 20/01/2003, 16h34

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