Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
spring找不到URI错误的HTTP请求的映射_Spring_Rest_Spring Mvc - Fatal编程技术网

spring找不到URI错误的HTTP请求的映射

spring找不到URI错误的HTTP请求的映射,spring,rest,spring-mvc,Spring,Rest,Spring Mvc,访问url localhost:8080/todolistapp/index.html时引发http状态404 2014-11-08 01:09:58 WARN PageNotFound:1114 - No mapping found for HTTP request with URI [/todolistapp/index.html] in DispatcherServlet with name 'mvc-dispatcher' 这是我的web.xml <servlet>

访问url localhost:8080/todolistapp/index.html时引发http状态404

2014-11-08 01:09:58 WARN  PageNotFound:1114 - No mapping found for HTTP request with URI [/todolistapp/index.html] in DispatcherServlet with name 'mvc-dispatcher'
这是我的web.xml

<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/spring-config.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>
我可以像这样访问url

http://localhost:8080/todolistapp/todo/list
http://localhost:8080/todolistapp/todo/delete/2
但是当我试图访问
index.html
时,它抛出了错误

WARN  PageNotFound:1114 - No mapping found for HTTP request with URI [/todolistapp/index.html] in DispatcherServlet with name 'mvc-dispatcher'

这是我的项目布局

在web.xml中更改

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

mvc调度器
/*


mvc调度器
/
在my web.xml中,我有:

<servlet-mapping>
    <servlet-name>restServices</servlet-name>
    <url-pattern>/rest/*</url-pattern>
    <url-pattern>/rest</url-pattern>
</servlet-mapping>

餐饮服务
/休息/*
/休息
这有助于进行一些模式匹配(当然,您可能会省略“/rest”位,并具有:

<servlet-mapping>
    <servlet-name>restServices</servlet-name>
    <url-pattern>/*</url-pattern>
    <url-pattern>/</url-pattern>
</servlet-mapping>

餐饮服务
/*
/
我注意到您的@RequestMapping用于“/todo”,但您的访问权限似乎是“/todolistapp”

最后,如果您的用户正在使用消防水带饮水,您可以将日志记录设置为调试上下文:
“org.springframework.web.servlet.mvc”正如其他人所指出的,将一个
DispatcherServlet
映射到
/*
/
不是一回事。当您将它映射到
/*
时,它会占用绝对所有的URL,您必须告诉Spring MVC它必须将哪个URL视为静态资源来直接为它们服务,而不是寻找Spring控制器

相反,当您将它映射到
/
时,它具有最后一个优先级

它还改变了根URL的处理方式

你会发现关于这个的更详细的解释和参考资料

<servlet-mapping>
    <servlet-name>restServices</servlet-name>
    <url-pattern>/rest/*</url-pattern>
    <url-pattern>/rest</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>restServices</servlet-name>
    <url-pattern>/*</url-pattern>
    <url-pattern>/</url-pattern>
</servlet-mapping>