Весенний проект в Eclipse — 404

#java #eclipse #spring #jsp #tomcat

#java #eclipse #весна #jsp #tomcat

Вопрос:

Я пытаюсь запустить приложение на Tomcat, но продолжаю получать эту ошибку «Запрошенный ресурс (/ testapp /) недоступен». — что может быть не так? Я предполагаю, что моя настройка XML неверна, но не уверен, как это исправить.

dispatcher-servlet.xml

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

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-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="controller" />

    <mvc:view-controller path="/" view-name="HelloWorldPage" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>
  

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"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

    <display-name>Spring Web MVC Application</display-name>

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

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

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </context-param>

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

</web-app>
  

HelloWorldController.java — использование весенних аннотаций.

 package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/welcome")
public class HelloWorldController {

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView helloWorld() {

        ModelAndView model = new ModelAndView("HelloWorldPage");
        model.addObject("msg", "hello world");

        return model;
    }
}
  

Комментарии:

1. Что такое ошибка / исключение во время развертывания?

2. это страница ошибок во время выполнения, которую вы получаете, но я спрашиваю, есть ли какие-либо исключения во время развертывания

3. В каталоге tomcat нет файлов JSP, что странно

4. Проверьте журналы запуска tomcat. Мне кажется разумным, что вашему приложению не удалось запуститься; Tomcat запущен, но «testapp» не удалось запустить

5. В localhost_access_log — в последних строках есть «HTTP / 1.1″ 404 985»

Ответ №1:

в вашем web.xml вы сопоставляете spring с *.htm, но ваш контроллер сопоставлен с

 @RequestMapping("/welcome")
  

вы должны сопоставить

 @RequestMapping("/welcome.htm")
  

Ответ №2:

В случае, если вы не получаете никаких исключений в консоли eclipse, я думаю, вы, вероятно, не попали в правильный контекст вашего проекта, в основном это точное имя вашего приложения, но иногда оно отличается…

Если вы неправильно вводите имя приложения, попробуйте это.

Щелкните правой кнопкой мыши по проекту, щелкните по свойствам.

Затем выполните поиск контекста.

вы найдете раздел под названием ContextRoot

Используйте строку в этом поле для монтирования вашего Contextroot следующим образом

localhost:8080/stringFound/

и нажмите enter в браузере.

Комментарии:

1. Корень контекста совпадает с именем проекта.