복붙노트

[SPRING] 부팅 스프링 MVC는 "(유형 = 찾을 수 없음 상태 = 404) 예기치 못한 오류가 발생했습니다"

SPRING

부팅 스프링 MVC는 "(유형 = 찾을 수 없음 상태 = 404) 예기치 못한 오류가 발생했습니다"

그래서 봄에 새로운 그리고 난 지금까지 MongoDB를 데이터베이스에 연결된 실행 간단한 웹 API를받은 적이 있지만 문제가 발생 .jsp로 또는 .html 파일을 사용하여 그냥 평범한 오래된 의견을 보내고 있습니다. 나는 다른 접근 방식의 다양한 시도했다 : 대신의 ModelAndView 객체의 문자열을 반환 것은 InternalResourceViewResolver, XmlViewResolver을, 아무것도 나를 위해 일하게 될 것 같다. 나는 다음과 같은 코드가 있습니다 :

편집 : 여기 내 프로젝트와 자식의 repo는 다음과 같습니다 https://github.com/jwallp/Spring-Test

위의 프로젝트이기 때문에, 나는 말한다에 / 인덱스가는에 흰색 라벨 오류를 얻고있다 :

There was an unexpected error (type=Internal Server Error, status=500).
Circular view path [index]: would dispatch back to the current handler URL [/index] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

편집 : 그래서 내가, 그리고 내 프로젝트 루트에서 내 WEB-INF 디렉토리를 이동하여 마지막으로 spring.view.prefix 대신 spring.mvc.view.prefix 등의 spring.view.suffix를 사용하여로드 뷰를 얻을 수 있었다 <프로젝트 루트> / SRC / 메인 / 웹 애플리케이션 / 내부. 내 WEB-INF 디렉토리를 다른 디렉토리에 포함되어있는 경우 난 그냥 아직 구성 (그 내용을 직접 볼 수없는 만들기) 기능을합니다, 알고 싶어?

해결법

  1. ==============================

    1.봄 부팅 때문에 임베디드 서블릿 컨테이너의 사용으로, JSP에 대한 지원이 제한되어 있습니다. 봄 부팅 참조 문서에서 :

    봄 부팅 때문에 임베디드 서블릿 컨테이너의 사용으로, JSP에 대한 지원이 제한되어 있습니다. 봄 부팅 참조 문서에서 :

    여기에 봄 부팅 응용 프로그램에서 JSP를 사용하는 기본적인 예입니다.

  2. ==============================

    2.당신이 당신의 클래스 경로에있는 JSP 라이브러리를 바랍니다. 당신이 그있을 것이다 pom.xml 파일에 다음과 같은 의존성을 포함 받는다는을 사용하는 경우 :

    당신이 당신의 클래스 경로에있는 JSP 라이브러리를 바랍니다. 당신이 그있을 것이다 pom.xml 파일에 다음과 같은 의존성을 포함 받는다는을 사용하는 경우 :

        <!-- For using JSP -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
    
        <!-- If you want to use JSTL -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
    

    또한, JSP 파일의 상단에이 줄을 추가해야 할 수도 있습니다 :

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    

    최신 정보

    GitHub의에서 프로젝트에 다음과 같은 변경을하는 것은 내 환경에서 근무 :

  3. ==============================

    3.다음을 시도해보십시오 :

    다음을 시도해보십시오 :

    package hello;
    
        import org.springframework.stereotype.Controller;
        import org.springframework.web.servlet.ModelAndView;
        import org.springframework.web.bind.annotation.RequestMapping;
    
        @Controller
        public class IndexController
        {
            @RequestMapping("/")
            public String index()
            {
                return "index";
            }
        }
    
  4. ==============================

    4.봄 부팅에 이전 응용 프로그램을 업그레이드하는 동안 우리는 직장에서이 문제에 달렸다. 우리가 무슨 짓을했는지 :

    봄 부팅에 이전 응용 프로그램을 업그레이드하는 동안 우리는 직장에서이 문제에 달렸다. 우리가 무슨 짓을했는지 :

  5. ==============================

    5.나는이 문제로 몇 번 실행. 내가 / WEB-INF를 넣어 때문에 / /의 SRC의 / 주 / java 폴더이었다. 최신 나는 / SRC / 메인 / 웹 애플리케이션에서 INF 파일을 별도의 경로를 만들어 내가 제대로 내 응용 프로그램을 실행할 수 있었다 브라우저에서 텍스트를 표시.

    나는이 문제로 몇 번 실행. 내가 / WEB-INF를 넣어 때문에 / /의 SRC의 / 주 / java 폴더이었다. 최신 나는 / SRC / 메인 / 웹 애플리케이션에서 INF 파일을 별도의 경로를 만들어 내가 제대로 내 응용 프로그램을 실행할 수 있었다 브라우저에서 텍스트를 표시.

  6. ==============================

    6.JSP 파일 재배치에 따라하면 문제를 해결할 수 있습니다. 나는 내 문제를 이런 식으로 해결 :

    JSP 파일 재배치에 따라하면 문제를 해결할 수 있습니다. 나는 내 문제를 이런 식으로 해결 :

    .jsp로 파일을하기 위해 이동 :

    "src/main/resources/META-INF/resources/WEB-INF/jsp".
    

    application.properties 파일이 포함되어 있는지 확인합니다 :

    spring.view.prefix: /WEB-INF/jsp/
    spring.view.suffix: .jsp
    

    컨트롤러 클래스는 같이해야합니다 :

       @Controller
        public class IndexController
         {
             @RequestMapping("/")
             public String index()
              {
                 return "index";
             }
          }
    

    당신이 받는다는을 사용하는 경우, pom.xml 파일에 다음과 같은 종속 관계를 포함

    <!-- For using JSP -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    
    <!-- If you want to use JSTL -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    

    그런 다음 작동합니다.

  7. from https://stackoverflow.com/questions/31900411/spring-mvc-with-boot-there-was-an-unexpected-error-type-not-found-status-404 by cc-by-sa and MIT license