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

Wildfly/JBoss Java Discussion :

Problème de classpath et de fichier de configuration Spring


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut Problème de classpath et de fichier de configuration Spring
    Je vous explique mon problème: je déploie une application sur un serveur JBoss 4.2.2 sous forme d'un EAR.
    Dans cet EAR, il y a:
    • un JAR avec les interfaces de mes services Spring (myapp-common.jar)
    • un JAR avec les implémentations de mes services Spring et les fichiers de configurations dont applicationContext.xml à la racine (myapp-core.jar)
    • un WAR avec un webservice Spring-WS qui va appeler mes services Spring (myapp-ws.war)


    Dans le war du webservice, j'ai le fichier web.xml suivant:
    Code xml : 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
    30
    31
     
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
             version="2.4">
     
        <display-name>My App</display-name>
     
        <servlet>
            <servlet-name>spring-ws</servlet-name>
            <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>spring-ws</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
     
        <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
     
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                classpath:applicationContext.xml
                classpath:applicationContext-dataSource.xml
                classpath:applicationContext-mail.xml
            </param-value>
        </context-param>
     
    </web-app>

    Et donc les trois applicationContext-*.xml sont à la racine de myapp-core.jar

    Maintenant quand je démarre le serveur et qu'il charge l'application, il me dit qu'il ne trouve pas applicationContext.xml, comme s'il n'était pas sur le classpath.

    Quelqu'un a une idée d'où ça peut merder dans ma config?

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Normalement, applicationContext.xml de Spring et dans le cadre d'une application web doit aller dans le dossier WEB-INF ... pas dans la racine de l'application.

    Bonne chance.

  3. #3
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    Oui mais là il est pas dans la racine de l'application war, mais dans la racine d'une archive JAR qui est dans le même EAR que le WAR. Et je ne peux pas trop le déplacer, parce que mon objectif à terme c'est d'avoir plusieur WAR dans l'EAR qui dépendent du même JAR avec une seule version centralisée de l'applicationContext.xml.

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Oki !
    Tu peux donc ajouter ceci dans ton web.xml:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/applicationContext.xml</param-value>
    </context-param>

    Histoire de dire au ContextLoaderListener de Spring de pas cherche applicationContext.xml dans web-inf mais à la racine.

    Tiens nous au courant.

  5. #5
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Euh, petit correctif:
    La solution donnée dans le post précédent marche pour un fichier local à la racine de l'application, mais dans ton cas (fichier dans un jar), tu dois plutôt faire:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    J'ai testé et cela marche.

    Bonne chance.

  6. #6
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    Alors justement c'est avec ça que j'avais commencé mais ça ne fonctionnait pas.
    Par contre avec un mix des deux solutions ça fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:/applicationContext.xml</param-value>
    </context-param>

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/06/2013, 11h23
  2. Problème pour les fichiers de configuration
    Par DarkSeiryu dans le forum Windows Forms
    Réponses: 15
    Dernier message: 29/01/2009, 10h35
  3. Problème avec fichier de configurations
    Par ploxien dans le forum Maven
    Réponses: 2
    Dernier message: 02/10/2008, 17h12
  4. Recupérer le fichier de configuration spring
    Par Space23 dans le forum Spring Web
    Réponses: 1
    Dernier message: 14/07/2008, 20h11
  5. problème d'accès à un fichier de configuration XML
    Par yeddoughmi dans le forum Autres
    Réponses: 1
    Dernier message: 30/05/2007, 21h53

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