2013-01-18 6 views
0

생성재정 스프링 MVC 컨텍스트 설정 위치 내 응용 프로그램을 초기화 할 때 나는이 오류가 계속 오류

SEVERE: Exception sending context initialized event to listener instance of class 

org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/spring-mango/root-context.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/spring-mango/root-context.xml] 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649) 
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1585) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/spring-mango/root-context.xml] 
    at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:117) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) 
    ... 26 more 

나는 설정 파일의 위치를 ​​설정 한 (실제로 잘 작동하는 것 같다하지만 당황) 여기에 본 웹 서버의 context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Context> 
    <!-- Default set of monitored resources --> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource> 

    <!-- Uncomment this to disable session persistence across Tomcat restarts --> 
    <!-- 
      <Manager pathname="" /> 
      --> 
    <!-- Uncomment this to enable Comet connection tacking (provides events 
       on session expiration as well as webapp lifecycle) --> 
    <!-- 
      <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
      --> 
    <Loader loaderClass="com.springsource.insight.collection.tcserver.ltw.TomcatWeavingInsightClassLoader"/> 
    <Listener className="com.springsource.insight.collection.tcserver.lifecycle.ApplicationLifecycleCollectionListener"/> 

    <Parameter name="contextConfigLocation" value="/WEB-INF/spring-mango/root-context.xml" override="false"/> 

</Context> 

web.xml 파일이

여기에서 찾을 수있다 (이는 TC 서버 2.7 스프링 소스의 ToolSuite 2.9.2이다)

루트 컨텍스트 파일을 여기에서 찾을 :

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/mvc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:security="http://www.springframework.org/schema/security" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
     http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 

    <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --> 

    <!-- Enables the Spring MVC @Controller programming model --> 
    <annotation-driven /> 

    <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --> 
    <resources mapping="/resources/**" location="/resources/" /> 

    <interceptors> 
     <beans:bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"/> 
    </interceptors> 

    <beans:bean class="org.springframework.ui.context.support.ResourceBundleThemeSource" id="themeSource"/> 
    <beans:bean class="org.springframework.web.servlet.theme.CookieThemeResolver" id="themeResolver" 
       p:cookieName="theme" p:defaultThemeName="default"/> 

    <!-- Support for multipart form data as parameters to controllers --> 
    <!-- NOTE: the maxUploadSize limit, we must be aware of DB sizes and increase this if necessary --> 
    <beans:bean id="multipartResolver" p:maxInMemorySize="5000000" 
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver" 
      p:maxUploadSize="150000000"/> 

    <!-- Resolves views selected for rendering by @Controllers to .jspx resources in the /WEB-INF/views directory --> 
    <!-- 
    <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <beans:property name="prefix" value="/WEB-INF/views/" /> 
     <beans:property name="suffix" value=".jspx" /> 
    </beans:bean> 
    --> 

    <!-- Tiles Configuration --> 
    <beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" id="tilesViewResolver"> 
     <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> 
    </beans:bean> 




    <beans:bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" id="tilesConfigurer"> 
     <beans:property name="definitions"> 
      <beans:list> 
       <beans:value>/WEB-INF/layouts/layouts.xml</beans:value> 
       <!-- Scan views directory for Tiles configurations --> 
       <beans:value>/WEB-INF/views/**/views.xml</beans:value> 
      </beans:list> 
     </beans:property> 
    </beans:bean> 

    <context:component-scan base-package="com.kwhours.mango.web.controller" /> 

    <beans:import resource="classpath:mango-app-context.xml"/> 

    <beans:import resource="classpath:mango-app-security.xml"/> 

    <context:component-scan base-package="com.kwhours.mango.service.jpa"/> 



</beans:beans> 

그래서 ContextLoaderListener에 지정한 디렉토리에있다이 파일을 찾을 수없는 이유 알아 내려고 노력하고있는 무슨. 어떻게 든 contextLoaderListener에 다른 곳에서 사용할 수있게해야합니까? 예외 스택 추적에서

+0

근본 원인이'FileNotFound'이므로 파일이 실제로 생각한 곳이 아닌 것이 틀림 없습니다. Howe는 당신의 WAR를 구축하고 있습니까? 그리고 실제로 배포 된 WAR에서 파일을 보았습니까? – parsifal

+0

나는 전쟁을 일으켰고이 위치에있는 파일과 파일을 보았다. – flips

답변

0

봐 :

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/spring-mango/root-context.xml 

응용 프로그램이 파일 /WEB-INF/spring-mango/root-context.xml을 찾고있다, 그러나 당신은 당신의 웹에 언급 된 다음 한 .XML :

  • /WEB-INF/spring/root-context.xml
  • /WEB-INF/spring/appServlet/servlet-context.xml

그러나 당신은 당신의 context.xml에 다음과 같습니다

<Parameter name="contextConfigLocation" value="/WEB-INF/spring-mango/root-context.xml" override="false"/> 

그래서 무슨 일이 응용 프로그램을 찾아 의미를? 아마도 context.xml에서 해당 항목을 제거해야 할 수도 있습니다.