[SPRING] 이 응용 프로그램에는 / error에 대한 명시적인 매핑이 없습니다.
SPRING이 응용 프로그램에는 / error에 대한 명시적인 매핑이 없습니다.
maven을 사용하여 튜토리얼 https://spring.io/guides/gs/uploading-files/을 수행했습니다. 내가 사용한 모든 코드가 복사되었습니다.
응용 프로그램을 실행할 수 있지만 오류가 발생합니다.
어떻게 해결할 수 있습니까?
해결법
-
==============================
1.기본 클래스가 다른 클래스보다 상위 패키지에 있는지 확인하십시오.
기본 클래스가 다른 클래스보다 상위 패키지에 있는지 확인하십시오.
Spring Boot Application (즉, @SpringBootApplication으로 주석 처리 된 클래스)을 실행하면 Spring은 기본 클래스 패키지 아래의 클래스 만 검색합니다.
com +- APP +- Application.java <--- your main class should be here, above your controller classes | +- model | +- user.java +- controller +- UserController.java
-
==============================
2.Spring 부트 애플리케이션을 만들 때 @SpringBootApplication 주석으로 주석을 붙인다. 이 주석은 응용 프로그램이 작동하는 데 필요한 여러 가지 주석을 '마무리'합니다. 이러한 주석 중 하나는 @ComponentScan 주석입니다. 이 주석은 Spring에게 Spring 구성 요소를 찾고 실행되도록 구성하도록 지시합니다.
Spring 부트 애플리케이션을 만들 때 @SpringBootApplication 주석으로 주석을 붙인다. 이 주석은 응용 프로그램이 작동하는 데 필요한 여러 가지 주석을 '마무리'합니다. 이러한 주석 중 하나는 @ComponentScan 주석입니다. 이 주석은 Spring에게 Spring 구성 요소를 찾고 실행되도록 구성하도록 지시합니다.
Spring이 서브 패키지를 스캔하고 다른 필수 구성 요소를 찾을 수 있도록, 애플리케이션 계층은 패키지 계층 구조의 맨 위에 있어야합니다.
package com.test.spring.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
아래의 코드 스 니펫은 컨트롤러 패키지가 com.test.spring.boot 패키지 아래에있는 것처럼 작동합니다.
package com.test.spring.boot.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HomeController { @RequestMapping("/") public String home(){ return "Hello World!"; } }
컨트롤러 패키지가 com.test.spring.boot 패키지에 있지 않기 때문에 아래 코드 스 니펫이 작동하지 않습니다.
package com.test.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HomeController { @RequestMapping("/") public String home(){ return "Hello World!"; } }
스프링 부트 문서 :
-
==============================
3.응용 프로그램에 ErrorController를 추가하여이 문제를 해결할 수 있습니다. 오류 컨트롤러가 필요한보기를 리턴하도록 할 수 있습니다.
응용 프로그램에 ErrorController를 추가하여이 문제를 해결할 수 있습니다. 오류 컨트롤러가 필요한보기를 리턴하도록 할 수 있습니다.
내 응용 프로그램의 오류 컨트롤러는 다음과 같습니다.
import org.springframework.boot.autoconfigure.web.ErrorAttributes; import org.springframework.boot.autoconfigure.web.ErrorController; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.Map; /** * Basic Controller which is called for unhandled errors */ @Controller public class AppErrorController implements ErrorController{ /** * Error Attributes in the Application */ private ErrorAttributes errorAttributes; private final static String ERROR_PATH = "/error"; /** * Controller for the Error Controller * @param errorAttributes */ public AppErrorController(ErrorAttributes errorAttributes) { this.errorAttributes = errorAttributes; } /** * Supports the HTML Error View * @param request * @return */ @RequestMapping(value = ERROR_PATH, produces = "text/html") public ModelAndView errorHtml(HttpServletRequest request) { return new ModelAndView("/errors/error", getErrorAttributes(request, false)); } /** * Supports other formats like JSON, XML * @param request * @return */ @RequestMapping(value = ERROR_PATH) @ResponseBody public ResponseEntity<Map<String, Object>> error(HttpServletRequest request) { Map<String, Object> body = getErrorAttributes(request, getTraceParameter(request)); HttpStatus status = getStatus(request); return new ResponseEntity<Map<String, Object>>(body, status); } /** * Returns the path of the error page. * * @return the error path */ @Override public String getErrorPath() { return ERROR_PATH; } private boolean getTraceParameter(HttpServletRequest request) { String parameter = request.getParameter("trace"); if (parameter == null) { return false; } return !"false".equals(parameter.toLowerCase()); } private Map<String, Object> getErrorAttributes(HttpServletRequest request, boolean includeStackTrace) { RequestAttributes requestAttributes = new ServletRequestAttributes(request); return this.errorAttributes.getErrorAttributes(requestAttributes, includeStackTrace); } private HttpStatus getStatus(HttpServletRequest request) { Integer statusCode = (Integer) request .getAttribute("javax.servlet.error.status_code"); if (statusCode != null) { try { return HttpStatus.valueOf(statusCode); } catch (Exception ex) { } } return HttpStatus.INTERNAL_SERVER_ERROR; } }
위의 클래스는 Springs BasicErrorController 클래스를 기반으로합니다.
@Configuration 파일에서 위의 ErrorController를 다음과 같이 인스턴스화 할 수 있습니다.
@Autowired private ErrorAttributes errorAttributes; @Bean public AppErrorController appErrorController(){return new AppErrorController(errorAttributes);}
ErrorAttributes를 구현하여 기본 ErrorAttributes를 재정의하도록 선택할 수 있습니다. 하지만 대부분의 경우 DefaultErrorAttributes 만 있으면 충분합니다.
-
==============================
4.내 경우에는 패키지 위치 때문입니다. 즉, 컨트롤러의 패키지는 메인 클래스 패키지 위에 있어야합니다.
내 경우에는 패키지 위치 때문입니다. 즉, 컨트롤러의 패키지는 메인 클래스 패키지 위에 있어야합니다.
내 메인 클래스 패키지가 co.companyname.spring.tutorial 패키지 인 경우; 모든 컨트롤러 패키지에는 co.companyname.spring.tutorial.WHAT_EVER_HERE 패키지가 있어야합니다.
package co.companyname.spring.tutorial; // package for main class @SpringBootApplication public class FirstProjectApplication { public static void main(String[] args) { SpringApplication.run(FirstProjectApplication.class, args); } } package co.companyname.spring.tutorial.controllers; // package for controllers import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "Hello, world"; }}
프레스 부팅 대시 보드 끝내기 후
마지막으로 컨트롤러가 맵핑되고 있는지 또는 콘솔이 아니라는 것을 확인하기 위해
Mapped "{[/hello]}" onto public java.lang.String co.companyname.spring.tutorial.controllers.HelloController.hello()
행복한 코딩
-
==============================
5.필자의 경우 컨트롤러 클래스는 @Controller로 주석 처리되었다. @RestController로 변경하면 문제가 해결됩니다. 기본적으로 @RestController는 @Controller + @ResponseBody입니다. 따라서 @RestController 나 @ResponseBody 주석을 가진 @Controller를 각 메소드와 함께 사용하십시오.
필자의 경우 컨트롤러 클래스는 @Controller로 주석 처리되었다. @RestController로 변경하면 문제가 해결됩니다. 기본적으로 @RestController는 @Controller + @ResponseBody입니다. 따라서 @RestController 나 @ResponseBody 주석을 가진 @Controller를 각 메소드와 함께 사용하십시오.
몇 가지 유용한 참고 사항 : https://www.genuitec.com/spring-frameworkrestcontroller-vs-controller/
-
==============================
6.종속성을 추가하십시오.
종속성을 추가하십시오.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
-
==============================
7.이 종속성을 추가하고 내 문제를 해결했습니다.
이 종속성을 추가하고 내 문제를 해결했습니다.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
-
==============================
8.즉 오류가 발생했을 수 있습니다.
즉 오류가 발생했을 수 있습니다.
"이 응용 프로그램에는 / error에 대한 명시적인 매핑이 없으므로이를 대체로보고 있습니다."
이것은 main () 클래스에서 지정해야하는 Controller & Service 클래스를 스캐닝하지 않기 때문입니다.
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @EnableAutoConfiguration **@ComponentScan({"com.example.demo", "controller", "service"})** public class SpringBootMvcExample1Application { public static void main(String[] args) { SpringApplication.run(SpringBootMvcExample1Application.class, args); } }
참고 : 여기서는 데모, 컨트롤러 및 서비스와 같은 다양한 클래스를 지정하여 스캔 한 다음 제대로 작동합니다.
-
==============================
9.문제는 가이드에 설명 된대로 localhost : 8080 / upload 대신 localhost : 8080 /로 이동한다는 것입니다. 스프링 부트에는 정의되지 않은 경로로 이동할 때 사용되는 기본 오류 페이지가 있습니다 (보안 위험으로 간주 될 수 있음).
문제는 가이드에 설명 된대로 localhost : 8080 / upload 대신 localhost : 8080 /로 이동한다는 것입니다. 스프링 부트에는 정의되지 않은 경로로 이동할 때 사용되는 기본 오류 페이지가 있습니다 (보안 위험으로 간주 될 수 있음).
옵션은 오른쪽 페이지를 방문하거나 방문 페이지를 직접 추가하거나 흰색 오류 페이지를 무시하는 것입니다.
이 특정 상황을 단순화하기 위해 가이드를 업데이트하여 / upload 대신 /를 사용하도록했습니다.
-
==============================
10.기본 클래스에서 "@SpringBootApplication"구성 후 "@ComponentScan"을 인수없이 추가하면 나를 위해 일했습니다.
기본 클래스에서 "@SpringBootApplication"구성 후 "@ComponentScan"을 인수없이 추가하면 나를 위해 일했습니다.
메인 클래스 :
@SpringBootApplication @ComponentScan public class CommentStoreApplication { public static void main(String[] args) { SpringApplication.run(CommentStoreApplication.class, args); } }
RestController 클래스 :
@RestController public class CommentStoreApp { @RequestMapping("/") public String hello() { return "Hello World!"; } }
P.S : 응용 프로그램을 시작하기 전에 mvn clean 및 mvn install 명령을 실행하지 마십시오.
-
==============================
11.나는 몇 주 동안 Spring Boot 애플리케이션을 개발 중이다. 그리고 나는 아래처럼 gettig 같은 오류가 발생했다.
나는 몇 주 동안 Spring Boot 애플리케이션을 개발 중이다. 그리고 나는 아래처럼 gettig 같은 오류가 발생했다.
이 오류 메시지가 나타나면 내 컨트롤러 또는 나머지 컨트롤러 클래스가 내 프로젝트에서 정의 된 노트라는 것을 깨달았습니다. 우리의 모든 컨트롤러 패키지가 @SpringBootApplication 주석을 포함하는 메인 클래스와 동일한 패키지가 아니라는 것을 의미합니다. @ConnectionBlockApplication annotation.If 코드를 작성하면 메인 클래스에 @ComponentScan 주석에 컨트롤러 패키지의 이름을 추가해야합니다. 귀하의 문제 아래에 해결 될 것입니다 ... 가장 중요한 것은 당신이 모든 컨트롤러의 패키지를 @ComponentScan 주석에 추가해야합니다.
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan({ "com.controller.package1, com.controller.package2, com.controller.package3, com.controller.packageN", "controller", "service" } // If our Controller class or Service class is not in the same packages we have //to add packages's name like this...directory(package) with main class public class MainApp { public static void main(String[] args) { SpringApplication.run(MainApp.class, args); } }
나는이 코드가 누군가를 도울 것이라고 희망한다.
이 오류를 해결할 다른 방법을 찾거나 나에게 제안이 있다면, 코멘트에 써주세요 ... 고마워 ...
-
==============================
12.나는 그것이 정확하게 질문에 대한 답변이 아니라는 것을 알고 있지만,이 질문은 Google에 처음 나타난다. :)
나는 그것이 정확하게 질문에 대한 답변이 아니라는 것을 알고 있지만,이 질문은 Google에 처음 나타난다. :)
문제 ( "이 애플리케이션에는 / 오류에 대한 명시적인 매핑이 없습니다")가 Swagger UI에 액세스하려고 할 때 나타납니다.
내 경우에는 문제가 @RestController ( "/ endpoint")에 의해 발생했는데, 이는 swagger가 제대로 처리하지 못합니다.
따라서 오류가 발생했습니다.
@RestController("/endpoint") public class EndpointController {
그리고 이것은 괜찮 았어.
@RestController @RequestMapping("/endpoint") public class EndpointController {
-
==============================
13.이것은 명시 적 오류 페이지가 정의되지 않은 경우 발생합니다. 오류 페이지를 정의하려면 뷰에 / error 맵핑을 작성하십시오. 예 : 아래 코드는 오류가 발생했을 때 반환되는 문자열 값에 매핑됩니다.
이것은 명시 적 오류 페이지가 정의되지 않은 경우 발생합니다. 오류 페이지를 정의하려면 뷰에 / error 맵핑을 작성하십시오. 예 : 아래 코드는 오류가 발생했을 때 반환되는 문자열 값에 매핑됩니다.
package com.rumango.controller; import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class IndexController implements ErrorController{ private final static String PATH = "/error"; @Override @RequestMapping(PATH) @ResponseBody public String getErrorPath() { // TODO Auto-generated method stub return "No Mapping Found"; } }
-
==============================
14.이런 종류의 문제를 해결하기 위해 수행 한 작업은 MVC 구성 클래스의 주석 @Configuration을 언급하는 것입니다.
이런 종류의 문제를 해결하기 위해 수행 한 작업은 MVC 구성 클래스의 주석 @Configuration을 언급하는 것입니다.
이 같은 :
package com.example; /** * Created by sartika.s.hasibuan on 1/10/2017. */ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @EnableAutoConfiguration @Configuration @ComponentScan public class MvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/home").setViewName("home"); registry.addViewController("/").setViewName("home"); registry.addViewController("/hello").setViewName("hello"); registry.addViewController("/login").setViewName("login"); } }
-
==============================
15.나는 비슷한 오류가 있었고, 나는 스프링 부트와 벨로 시티를 사용했다. 나의 해결책은 application.properties 파일을 점검하는 것이고, spring.velocity.toolbox-config-location은이 속성이 잘못되었다는 것을 발견했다.
나는 비슷한 오류가 있었고, 나는 스프링 부트와 벨로 시티를 사용했다. 나의 해결책은 application.properties 파일을 점검하는 것이고, spring.velocity.toolbox-config-location은이 속성이 잘못되었다는 것을 발견했다.
-
==============================
16.필자의 경우이 문제는 Maven에서 먼저 실행 한 후 IntelliJ에서 SpringApplication을 실행할 때 발생합니다.
필자의 경우이 문제는 Maven에서 먼저 실행 한 후 IntelliJ에서 SpringApplication을 실행할 때 발생합니다.
이 문제를 해결하기 위해, 먼저 mvn clean을 실행합니다. 그런 다음 IntelliJ 내에서 SpringApplication을 실행한다.
-
==============================
17.컨트롤러 클래스에서 @Controller를 @RestController로 변경하면 모든 것이 원활하게 진행됩니다.
컨트롤러 클래스에서 @Controller를 @RestController로 변경하면 모든 것이 원활하게 진행됩니다.
-
==============================
18.저도 같은 오류가 발생하여 아래의 의존성을 pom.xml에 추가하여 오류를 해결할 수있었습니다.
저도 같은 오류가 발생하여 아래의 의존성을 pom.xml에 추가하여 오류를 해결할 수있었습니다.
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
이유는 JSP를보기로 사용하고 있기 때문입니다. Spring Boot Starter Web 용 기본 내장 서블릿 컨테이너는 tomcat입니다. JSP에 대한 지원을 가능하게하려면 tomcat-embed-jasper에 종속성을 추가해야합니다.
제 경우에는 컨트롤러에서 뷰로 JSP를 반환했습니다. 이 답변이 같은 문제로 어려움을 겪고있는 누군가에게 도움이되기를 바랍니다.
-
==============================
19.Main.class가 컨트롤러 위에 있어야합니다. 다음 예제의 경우 :
Main.class가 컨트롤러 위에 있어야합니다. 다음 예제의 경우 :
다음을 포함하는 Main.class :
@SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } }
다음을 포함하는 EmployeeController.class :
@RestController public class EmployeeController { @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { dataBinder.setDisallowedFields("id"); } @RequestMapping(value = "/employee/save", method = RequestMethod.GET) public String save(){ Employee newEmp = new Employee(); newEmp.setAge(25); newEmp.setFirstName("Pikachu"); newEmp.setId(100); return "Name: " + newEmp.getFirstName() + ", Age: " + newEmp.getAge() + ", Id = " + newEmp.getId(); } }
메인 클래스가 {projectname} / src / main / java / main과 같은 루트 폴더에 있다면 Main 클래스 아래에 컨트롤러가 있는지 확인하십시오. 예를 들면 {projectname} / src / main / java / main / controllers입니다.
-
==============================
20.기본 클래스 add : "@RestController"가있는 Java 파일 (예 : Viper.java) 및 @RequestMapping ( "/")
기본 클래스 add : "@RestController"가있는 Java 파일 (예 : Viper.java) 및 @RequestMapping ( "/")
@SpringBootApplication @RestController public class Viper { @RequestMapping("/") public String home(){ return "This is what i was looking for"; } public static void main( String[] args){ SpringApplication.run(Viper.class , args); } }
-
==============================
21.@RestController 어노테이션으로 컨트롤러 클래스를 표시했는지 확인하십시오.
@RestController 어노테이션으로 컨트롤러 클래스를 표시했는지 확인하십시오.
-
==============================
22.그것은 당신이 거기에없는 페이지에 액세스하려고한다는 것을 의미합니다. 코드에서 @RequestMapping ( "/ home")을 사용하고 "home.jsp"를 반환하면 jsp 파일이 /webapp/home.jsp에 있다고 가정하십시오. localhost : port /를 사용하여 액세스하려고하면이 오류가 발생하지만 localhost : port / home을 시도하면 오류가 발생하지 않습니다 액세스하려는 페이지의 @RequestMapping ( "/") 여기 put / mapping_path를 확인하여이 문제를 해결할 수 있습니다. 또한 Maven 종속성에서 Tomcat Jaspher의 종속성을 추가 할 수도 있습니다
그것은 당신이 거기에없는 페이지에 액세스하려고한다는 것을 의미합니다. 코드에서 @RequestMapping ( "/ home")을 사용하고 "home.jsp"를 반환하면 jsp 파일이 /webapp/home.jsp에 있다고 가정하십시오. localhost : port /를 사용하여 액세스하려고하면이 오류가 발생하지만 localhost : port / home을 시도하면 오류가 발생하지 않습니다 액세스하려는 페이지의 @RequestMapping ( "/") 여기 put / mapping_path를 확인하여이 문제를 해결할 수 있습니다. 또한 Maven 종속성에서 Tomcat Jaspher의 종속성을 추가 할 수도 있습니다
-
==============================
23.나는 gradle을 사용하여 같은 문제에 직면했고 다음 의존성을 추가 할 때 해결되었다.
나는 gradle을 사용하여 같은 문제에 직면했고 다음 의존성을 추가 할 때 해결되었다.
compile('org.springframework.boot:spring-boot-starter-data-jpa') compile('org.springframework.boot:spring-boot-starter-web') testCompile('org.springframework.boot:spring-boot-starter-test') compile('org.apache.tomcat.embed:tomcat-embed-jasper')
이전에 나는 같은 오류를 일으키는 마지막 하나를 놓치고 있었다.
-
==============================
24.이 문제에 직면하고 나서, 기본적으로 ViewControllers 및 setViewNames에 대한 매핑을 수행하는 MvcConfig 클래스에서 @Configuration 주석이 누락되었다는 사실을 깨닫게되었습니다.
이 문제에 직면하고 나서, 기본적으로 ViewControllers 및 setViewNames에 대한 매핑을 수행하는 MvcConfig 클래스에서 @Configuration 주석이 누락되었다는 사실을 깨닫게되었습니다.
다음은 파일의 내용입니다.
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; **@Configuration** public class MvcConfig implements WebMvcConfigurer{ public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("login"); registry.addViewController("/login").setViewName("login"); registry.addViewController("/dashboard").setViewName("dashboard"); } }
희망이 사람을 도와줍니다 !!
-
==============================
25.튜토리얼에서 컨트롤러는 모델 객체의 Map을 생성하고 뷰를 찾는 데 사용되는 @Controller로 주석을 달았지만 @RestController는 단순히 객체를 반환하고 객체 데이터는 JSON 또는 XML로 HTTP 응답에 직접 작성됩니다. 응답을 보려면 @RestController를 사용하십시오. 또는 @ResponseBody를 @Controller와 함께 사용하십시오.
튜토리얼에서 컨트롤러는 모델 객체의 Map을 생성하고 뷰를 찾는 데 사용되는 @Controller로 주석을 달았지만 @RestController는 단순히 객체를 반환하고 객체 데이터는 JSON 또는 XML로 HTTP 응답에 직접 작성됩니다. 응답을 보려면 @RestController를 사용하십시오. 또는 @ResponseBody를 @Controller와 함께 사용하십시오.
@Controller @ResponseBody
자세히 알아보기 : https://javarevisited.blogspot.com/2017/08/difference-between-restcontroller-and-controller-annotations-spring-mvc-rest.html#ixzz5WtrMSJHJ
-
==============================
26.이 튜토리얼에서는 classpath에 Thymeleaf 템플릿 엔진이 있어야한다. 나는 같은 문제에 부딪쳤다. 그리고 마침내 이것을 알아 냈다. 튜토리얼 작성자에게 그 정보를 포함시켜 줄 것입니다.
이 튜토리얼에서는 classpath에 Thymeleaf 템플릿 엔진이 있어야한다. 나는 같은 문제에 부딪쳤다. 그리고 마침내 이것을 알아 냈다. 튜토리얼 작성자에게 그 정보를 포함시켜 줄 것입니다.
튜토리얼을 따라 간다면 가장 쉬운 방법은 프로젝트 루트 폴더의 pom.xml에 종속성을 추가하는 것입니다. 다음 번에 앱을 실행하면 Spring이 Thymeleaf를 감지하고 uploadform 템플릿을 사용합니다
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
전체 예제는 Github 저장소를 참조하십시오.
-
==============================
27.프로젝트를 깨끗하게하거나 깨끗하게 확인하고 실행하십시오. 다른 프로젝트를 배치하기 전에 인스턴스를 정리해야합니다. 그것은 나를 위해 일했습니다. 나는 이것을 이해하기 위해 2 일 동안 노력했다.
프로젝트를 깨끗하게하거나 깨끗하게 확인하고 실행하십시오. 다른 프로젝트를 배치하기 전에 인스턴스를 정리해야합니다. 그것은 나를 위해 일했습니다. 나는 이것을 이해하기 위해 2 일 동안 노력했다.
-
==============================
28.나는이 문제를 해결할 수있는 많은 방법을 시도해 보았다.
spring-boot-starter-web artifactId> - - spring-boot-starter-thymeleaf artifactId> 또는 주석 @RestController를 @Controller로 대체했지만 같은 오류가 발생했습니다. 마지막으로 Application 클래스 맨 위에 @ComponentScan (basePackages = { "hello"}) 주석을 한 줄 추가하여 솔루션을 찾았습니다. 완벽하게 작동합니다. 나는이 문제를 해결할 수있는 많은 방법을 시도해 보았다.
spring-boot-starter-web artifactId> - - spring-boot-starter-thymeleaf artifactId> 또는 주석 @RestController를 @Controller로 대체했지만 같은 오류가 발생했습니다. 마지막으로 Application 클래스 맨 위에 @ComponentScan (basePackages = { "hello"}) 주석을 한 줄 추가하여 솔루션을 찾았습니다. 완벽하게 작동합니다. @ComponentScan(basePackages = {"hello"}) public class Application { public static void main(String[] args) throws Exception { SpringApplication.run(App.class, args); } }
나도 네게 도움이되기를 바란다.
from https://stackoverflow.com/questions/31134333/this-application-has-no-explicit-mapping-for-error by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring @ 트랜잭션이 작동하지 않음 (0) | 2018.12.07 |
---|---|
[SPRING] OPTIONS Http 메소드에 대한 스프링 보안 비활성화 (0) | 2018.12.07 |
[SPRING] Spring Boot - application.yml에서 맵 삽입 (0) | 2018.12.07 |
[SPRING] 다른 메소드 내부에서 메소드 호출을 위해 작동하지 않는 Spring AOP (0) | 2018.12.07 |
[SPRING] Spring에서 JSON deserializer를 작성하거나 확장하는 올바른 방법 (0) | 2018.12.07 |