5

我正在尝试在 Eclipse Kepler 上使用 Maven 创建一个基础 Spring 项目(安装了 m2eclipse)。Eclipse 没有报告错误,但是当我点击在服务器上运行(或运行 Maven 安装)时,只部署了 META-INF 和 WEB-INF 文件中的原始文件。这不包括我的 dispatcher-servlet.xml 配置文件,因此导致FileNotFoundException

java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]

我怎样才能解决这个问题?

这是我的 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/dispatcher-servlet.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

这是我项目文件夹的屏幕截图:

在此处输入图像描述

如您所见,已部署的资源中仅显示选定的文件。

4

2 回答 2

15

因为它是一个 Maven 项目。

我猜你可能已经将 maven 项目转换为动态 Web 项目。

按照步骤

  1. 转到项目属性(最后单击peoperties右键单击)

  2. 单击/选择左侧的部署程序集

  3. root(/) 部署路径可能指向 src/main/webapp ,选择它并单击删除按钮

  4. 单击添加按钮,选择指令类型文件夹,选择您的 WebContent 文件夹

现在尝试在服务器上清理并运行您的应用程序。

解决方案 2

  1. 实际上,您需要将所有WebContent 文件和文件夹复制/放置到 src/main/webapp

并重新启动您的服务器。

请注意,maven 动态 Web 项目默认情况下总是查找 src/main/webapp。

希望能帮助到你

于 2013-08-14T08:30:32.743 回答
0

<sourceDirectory>src</sourceDirectory><build>块中添加。

然后以“全新安装”目标运行 Maven。

并刷新您的项目。

现在检查您的目标文件夹。您应该看到 war 文件或 * 扩展文件。希望能解决

于 2016-10-14T18:18:12.087 回答