2011-09-22 4 views
4


J'ai une application Web basée sur J2EE qui est parfaitement déployée sur le serveur de l'application JBoss 6.0. J'utilise la configuration de serveur "par défaut" de JBoss. Mon fichier ".ear" contient des EJB et un fichier ".war" - J'utilise Spring Security 3x pour l'authentification et l'autorisation de l'utilisateur. Lorsque je déploie le même fichier ear sur JBoss 6.1, mon déploiement WAR échoue avec les erreurs suivantes. Chose étonnante: si je déploie le même fichier ".ear" au format éclaté, le déploiement est réussi.L'initialisation du contexte a échoué: org.springframework.beans.factory.BeanDefinitionStoreException

22:31:14,827 INFO [StdSchedulerFactory] Quartz scheduler version: 1.8.3 
22:31:14,828 INFO [QuartzScheduler] Scheduler EdmQuartzScheduler_$_NON_CLUSTERED started. 
22:31:14,828 INFO [QuartzService] QuartzService(EdmQuartzMBean) started. 
22:31:14,837 INFO [TomcatDeployment] deploy, ctxPath=/edm 
22:31:14,896 INFO [[/edm]] Initializing Spring root WebApplicationContext 
22:31:14,897 INFO [ContextLoader] Root WebApplicationContext: initialization started 
22:31:14,907 INFO [XmlWebApplicationContext] Refreshing Root WebApplicationContext: startup date [Wed Sep 21 22:31:14 PDT 2011]; rootof context hierarchy 
22:31:14,910 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext-business.xml] 
22:31:14,911 ERROR [ContextLoader] Context initialization failed: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext-business.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext-business.xml] 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) [:3.0.5.RELEASE] 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) [:3.0.5.RELEASE] 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) [:3.0.5.RELEASE] 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) [:3.0.5.RELEASE] 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) [:3.0.5.RELEASE] 
     at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124) [:3.0.5.RELEASE] 
     at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93) [:3.0.5.RELEASE] 
     at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) [:3.0.5.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467) [:3.0.5.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) [:3.0.5.RELEASE] 
     at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) [:3.0.5.RELEASE] 
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) [:3.0.5.RELEASE] 
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) [:3.0.5.RELEASE] 
     at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3369) [:6.1.0.Final] 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:3828) [:6.1.0.Final] 
     at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:294) [:6.1.0.Final] 
     at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146) [:6.1.0.Final] 
     at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:476) [:6.1.0.Final] 
     at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) [:6.1.0.Final] 
     at org.jboss.web.deployers.WebModule.start(WebModule.java:95) [:6.1.0.Final] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_27] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_27] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_27] 
     at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_27] 
     at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA] 
     at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA] 
     at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA] 
     at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA] 
     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA] 
     at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) [:2.2.0.SP2] 
     at $Proxy41.start(Unknown Source)  at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:53) [:2.2.0.SP2] 
     at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:41) [:2.2.0.SP2] 
     at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.SP2] 
     at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.SP2] 
     at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.SP2] 
     at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.SP2] 
     at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:301) [:2.2.0.SP2] 
     at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.SP2] 
     at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.SP2] 
     . 
     . 
     . 
     . 

Dans mon web.xml WAR j'ai indiqué l'emplacement des fichiers de configuration Spring comme:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/applicationContext-business.xml 
     /WEB-INF/applicationContext-security.xml 
    </param-value> 
</context-param> 

J'ai vérifié que les fichiers XML n'ont pas de problème de syntaxe et les fichiers sont en effet emballés dans LA GUERRE Répertoire WEB-INF. Maintenant, je crois que JBoss utilise Tomcat qui décompresse le fichier WAR. Il semble donc que les fichiers ne peuvent pas être trouvés sur le chemin de classe lorsque le fichier WAR est chargé et/ou qu'il n'est pas décompressé.

Je n'ai aucune idée de comment cela fonctionne avec succès dans JBoss 6.0 mais échoue sur 6.1. Il y a plus de corrections de bugs dans 6.1 mais la structure interne ou les bibliothèques ne sont pas changées entre ces deux versions.

Quelqu'un peut-il suggérer pourquoi Spring ne peut pas trouver ces fichiers de configuration lorsque le "ear" est déployé au format archivé/effondré? Ai-je besoin d'empaqueter de tels fichiers de configuration sous WEB-INF/classes ou dois-je utiliser un préfixe comme "classpath:" dans les balises?

Merci beaucoup à l'avance.

Répondre

0

Je sais que nous pouvons résoudre ce problème en ajoutant les fichiers dans le chemin de classe et changer le web.xml à

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
    classpath:/resource/applicationContext-business.xml 
    </param-value> 
</context-param> 
Questions connexes