2013-05-21 144 views
1

以下是我的配置文件我配置Spring配置不配置名称查找

WEB-INF /班/ applicationContext.xml的,但它寻找 WEB-INF/applicationContext.xml的

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="starter_anil" version="2.4" 
     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"> 

    <display-name>Anil-Spring</display-name> 
    <!-- Servlets --> 
    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>WEB-INF/classes/applicationContext.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

    <!-- Listeners --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
</web-app> 

我得到以下异常

EVERE: Context initialization failed 
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml] 

这里是我的applicationContext

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 

<beans> 
    <import resource="config/controllers.xml" /> 
    <!-- <import resource="conf/spring/services.xml" /> 
    <import resource="conf/spring/persistence.xml" /> 
    <import resource="conf/spring/daos.xml" /> 
    <import resource="conf/spring//interceptors.xml" /> --> 
</beans> 

这种情况的解决方案是

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="starter_anil" version="2.4" 
     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"> 

    <display-name>Anil-Spring</display-name> 
    <!-- Servlets --> 
    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/classes/applicationContext.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

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

    <!-- Listeners --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
</web-app> 

警告:未找到与URI [/AnilsSpring/WEB-INF/jsp/hello.jsp HTTP请求映射在DispatcherServlet的名称为 “MVC-调度” 请指导线我一次

+2

把你的'applicationContext。在'WEB-INF' –

+0

WEB-INF/classes中xml'/applicationContext.xml中为什么不采取任何配置 –

+0

因为春天查找它,默认情况下,在'WEB-INF'。或者做Majid发布的内容,但这是不好的做法,因为它不属于那里。 –

回答

1

为什么你applicationContext是在类中?正如它在评论中告诉的那样,将它移动到WEB-INF目录。这应该解决问题。

/classes目录用于编译的类,但不用于配置文件。

+0

离开它的理想告诉我为什么contextConfigLocation的寻找另一个路径 –

+0

因为默认查找路径是/ WEB-INF目录下。 – user

+0

您是否知道需要contextConfigLocation在春天mvc –

0

尝试添加//WEB-INF/classes/applicationContext.xml

如果还是不行,请尝试,而不是你的web.xml(前servlet的声明)

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/classes/applicationContext.xml 
    </param-value> 
</context-param> 
+0

java.io.FileNotFoundException:无法打开ServletContext的资源[/WEB-INF/mvc-dispatcher-servlet.xml]我得到这个以避免只有我上面配置初始参数 –

+0

为什么它serching/WEB-INF /的applicationContext。在配置方面的配置位置 –

-1

WEB-INF/classes中添加此/ applicationContext.xml对于此要求,必须将applicationContext.xml放在课程路径中,例如

如果你使用的是maven,那么把它放在src/main/resources文件夹中,否则放在src文件夹中。

这时你会发现它的WEB-INF内/类

+0

XML eventhogh是的,我使用maven它里面只有 –

+0

为什么它serching /WEB-INF/applicationContext.xml的eventhogh在配置方面的配置位置的src/main/resources文件夹 - ravula的刚才编辑 –

+0

网络。 xml配置在这里看到https://github.com/SpringSource/spring-webflow-samples/blob/master/webflow-showcase/src/main/webapp/WEB-INF/web.xml – Ruju

0
<?xml version="1.0" encoding="UTF-8"?> 

<web-app id="starter_anil" version="2.4" 
     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"> 

    <display-name>Anil-Spring</display-name> 
     <!-- Servlets --> 
    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/classes/applicationContext.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

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



    <!-- Listeners --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 





</web-app> 

本作例外少启动Tomcat上,但我有点困惑

0

如果这就是你绝对必须有它,试试这个:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="starter_anil" version="2.4" 
    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"> 

    <display-name>Anil-Spring</display-name> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:applicationContext.xml</param-value> 
    </context-param> 

    <the-rest-of-your-stuff /> 
</web-app> 

您可能需要一个applicationContext.xml/,但我不这么认为。

0

可能您需要执行取消部署。并部署它。它会工作。 。 它适用于我的异常 IOException从ServletContext资源解析XML文档[/ WEB-INF/classes/spring application config.xml];