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

Spring Java Discussion :

Accéder au fichier applicationContext.xml [Framework]


Sujet :

Spring Java

  1. #1
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut Accéder au fichier applicationContext.xml
    Je suis en train de développer une application web en Java.
    J'ai choisi d'utiliser le framework Spring comme support et, notamment, le IoC Container.
    J'ai donc créé un fichier applicationContext.xml dans le répertoire WEB-INF de mon application (WEB-INF/applicationContext.xml).
    Dans mon code, j'aimerais pouvoir créer un XmlBeanFactory en chargeant ce fichier.
    Le problème est que je n'arrive pas à y accéder.
    En effet, je ne peux utiliser un ClassPathResource (puisque WEB-INF n'est pas sur le classPath).
    Je ne peux pas non plus utiliser un FileSystemResource (puisque cela m'obligerait à hardcoder le nom de mon projet dans le chemin d'accès au fichier).
    Pour information, je ne peux pas déplacer le fichier applicationContext.xml.

    Ce problème doit être courant étant donné qu'il est recommandé de placer le fichier applicationContext.xml dans le répertoire WEB-INF.
    Toutefois, je n'ai pas encore trouvé de solution...

    Quelqu'un pourrait-il m'aider ?

    Merci d'avance...
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  2. #2
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonsoir, il faut que tu utilises la classe org.springframework.web.context.WebApplicationContext

    Angelo

  3. #3
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Merci beaucoup pour ton aide.

    Parmi les différentes implémentations de WebApplicationContext, la seule qui m'a semblé appropriée est XmlWebApplicationContext.
    En effet, un XmlWebApplicationContext charge, par défaut, le fichier WEB-INF/applicationContext.xml (ce qui convient exactement à mon problème!).
    J'ai donc écrit le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    XmlWebApplicationContext appContext = new XmlWebApplicationContext();
    appContext.refresh();
    bean = (<cast>)appContext.getBean("<beanName>");
    Mais voilà, j'obtiens une erreur qui me dit qu'un XmlWebApplicationContext ne peut accéder à un bean sans un ServletContext ('Cannot resolve ServletContextResource without ServletContext').
    Or, la classe dans laquelle je désire charger le bean ne possède pas de ServletContext...
    Pour être plus précis sur mes objectifs, j'essaie de charger un bean défini dans applicationContext.xml au sein d'un Appender Log4J que j'ai créé...
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  4. #4
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour,
    moi j'utilise le plugin Struts qui permet de recuperer le contexte Spring
    WebApplicationContext. Derriere je ne sais pas trop comment ca ete implemente. Je pense qua un moment il faut que tu lui passes le contexte de la servlet.

    Mais tu peux t'inspirer de la methode initWebApplicationContext() de la classe ContextLoaderPlugIn utilise par le plugin Struts pour intialiser le fichier de config Spring.

    Angelo

  5. #5
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Bonjour,

    Moi j'ai une approche différente. A mon avis (mais ça n'engage que moi), tu peut sans problème plasser ton applicationContext.xml dans ton classpath. Moi ce que je fait est charger cet applicationContext.xml depuis le listener que fournit Spring:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <context-param>
    	<param-name>contextConfigLocation</param-name>
    	<param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    Et je met les bean spécifique à SpringMVC dans un autre fichier qui lui se trouve dans /WEB-INF, en effet pour moi, dans ce répertoir, tu ne doit avoir que les fichiers qui correspondent à la configuration de ta couge WEB

  6. #6
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Merci pour vos réponses...
    Ne trouvant pas de solution pour conserver mon fichier applicationContext.xml directement sous mon WEB-INF, j'ai effectivement décidé de le placer dans mon classpath...
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

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

Discussions similaires

  1. fichier applicationContext xml
    Par xoftob dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 15/11/2012, 18h10
  2. le fichier : applicationContext.xml et Prbl de Deploiment
    Par kamaldev dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 19/02/2008, 11h07
  3. Accéder à un fichier XML
    Par Nounoursonne dans le forum Flash
    Réponses: 2
    Dernier message: 29/06/2007, 17h39
  4. probléme avec le fichier applicationContext.xml
    Par linniesurf dans le forum Spring
    Réponses: 2
    Dernier message: 25/01/2007, 17h58
  5. Accéder à un fichier XML depuis un jar
    Par Janitrix dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2007, 18h35

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