2014-11-07 3 views
0

статуса HTTP 404 выброшен при доступе к URL-адресу Localhost: 8080/todolistapp/index.htmlвесна Нет отображения найдено для запроса HTTP с ошибкой URI

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> 

Весеннего REST приложение, которое имеет HTML-файлы, доступ к REST API в том же проекте

@Controller 
@RequestMapping("/todo") 
public class TaskController { 
    ................. 
} 

я могу получить доступ к URL как

http://localhost:8080/todolistapp/todo/list 
http://localhost:8080/todolistapp/todo/delete/2 

, но когда я пытаюсь получить доступ к index.html он бросает ошибку

enter image description here

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

Это мой макет проекта

enter image description here

ответ

0

в вашем изменении web.xml

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

в

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

в моей 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».

Наконец, если до пить из пожарного шланга, вы можете установить протоколирование в DEBUG для контекста: «org.springframework.web.servlet.mvc»

0

Как другие отмечали, отображение а DispatcherServlet к /* и до / - нет такой же предмет. Когда вы сопоставляете его с /*, он принимает абсолютно все URL-адреса, и вы должны сообщить Spring MVC, какой URL-адрес он должен рассматривать как статические ресурсы, чтобы обслуживать их напрямую, а не искать контроллеры Spring.

Наоборот, если вы сопоставляете его с /, он имеет последний приоритет.

Он также изменяет способ обработки корневого URL-адреса.

Более подробное объяснение и ссылки на это related post

Смежные вопросы