【问题标题】:Web Application not pick up resourcesWeb 应用程序不拾取资源
【发布时间】:2016-04-20 20:27:29
【问题描述】:

我正在尝试使用 Maven 和 Spring 在 Eclipse 中构建一个应用程序。

我的应用程序似乎一切正常,但一旦我部署它,我就会收到以下错误消息:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException 从 ServletContext 资源 [/src/main/resources/springWeb.xml] 解析 XML 文档;嵌套异常是 java.io.FileNotFoundException: 无法打开 ServletContext 资源 [/src/main/resources/springWeb.xml]

我已经尝试了所有方法来更改 web.xml 文件中的参数值,但没有任何效果。

这是我的 web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
	<display-name>Olympus</display-name>
 
	<servlet>
		<servlet-name>springLoginApplication</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>src/main/resources/springWeb.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
 	<servlet-mapping>
   		<servlet-name>springLoginApplication</servlet-name>
      	<url-pattern>/</url-pattern>
   </servlet-mapping>
  
</web-app>

这是我的 springWeb.xml

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<context:component-scan base-package="org.olympus" />

	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/views/" />
      <property name="suffix" value=".jsp" />
   </bean>
	
	<import resource="springBeanConfiguration.xml"/>
	
</beans>

这是我的文件夹结构

enter image description here

【问题讨论】:

    标签: java eclipse spring maven


    【解决方案1】:

    以下配置应该适合您。使用类路径引用 src/main/resources 下的 xml 资源 例如类路径:springWeb.xml

        <servlet>
            <servlet-name>springLoginApplication</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springWeb.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>springLoginApplication</servlet-name>
            <url-pattern>/</url-pattern>
       </servlet-mapping>
    

    【讨论】:

    • 我确实注意到了。我认为文件夹结构将根据我选择的原型进行更改。您是否熟悉指定哪些文件应该放在哪里的在线资源?
    • 我使用 spring 文档作为参考。本文档将告诉您在不同位置放置不同 xml 文件的不同方法。
    • Spring 为您提供了很大的灵活性,可以根据您的喜好在不同位置添加 xml 文件。
    • 一般准则是 - 包含 Web 组件的 xml 文件应放在 WEB-INF 中。在 src/main/resources 下添加包含服务/存储库的 xml 文件。这使您可以灵活地为代码添加测试用例。同样,这是基于我的经验。您可能会遇到不同的方法。唯一要记住的就是与您的方法保持一致。在您的组织/公司项目中使用相同的方法。
    【解决方案2】:

    通常,一旦部署应用程序,您的应用程序中不会有 src/main 目录。所以你的“src/main/resources/springWeb.xml”应该更像是“resources/springWeb.xml”。查看您的应用程序的目录(或您的目标目录),并找出您的 springWeb.xml 文件在部署时的实际位置)

    【讨论】:

      猜你喜欢
      • 2011-07-07
      • 2011-01-15
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-04
      • 1970-01-01
      相关资源
      最近更新 更多