2017-02-09 1 views
1

NetBeans 8.1 사용.간단한 스프링 부트 프로젝트를 시작할 수 없습니다.

나는 콩이나 지속성이없는이 간단한 자바 스프링 부트 프로젝트를 가지고있다. 동일한 패키지에있는 두 개의 Java 클래스. 내가 그것을 실행하면 내가 갈 때

@SpringBootApplication 
public class SpringSimpleTestApplication { 
    public static void main(String[] args) { 
     SpringApplication.run(SpringSimpleTestApplication.class, args); 
    } 
} 

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

그리고 SRC 아래에 "index.html을"파일/주/자원 -> 템플릿

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Test</title> 
    </head> 
    <body> 
     <h1>Test</h1> 
    </body> 
</html> 

나는 오류가 없지만, http://localhost:8080/ 저는 입니다. Whitelabel Error Page :

Whitelabel Error Page 

This application has no explicit mapping for /error, so you are seeing this as a fallback. 
Thu Feb 09 01:53:26 CET 2017 
There was an unexpected error (type=Not Found, status=404). 
No message available 
+0

패키지 구조를 공유 할 수 있습니까 – sparrow

+0

당신의 의존성 (Maven/Gradle)을 보여줄 수 있습니까? – g00glen00b

답변

4

처음에 index.html은 정적 리소스이지만 이 아니라 src/main/resources/templates에 속합니다.

둘째, 정적 리소스에 대한 요청 매핑이 필요하지 않습니다. 그들은 단지 일합니다.

따라서 index.html을 삭제하고 WebController을 삭제하면 작동합니다.

0

잘못된 디렉토리에 html을 넣습니다. 이 오류가 발생하는 이유입니다.

스프링 부트 프로젝트에서 기본 디렉토리는 html 파일을 src/main/webapp로 저장합니다. 그러나 여기에 당신과 함께 보여주기가 어렵습니다. 튜토리얼에서 찾았습니다 Spring Boot Maven Example Hello World with JSP

Thymeleaf로 스프링 부트 프로젝트를 만들면 기본 디렉토리는 정확히 src/main/resources/templates입니다. 게시물을 참조 할 수 있습니다. Spring Boot Thymeleaf Hello World Example

두 경우 모두 함께 프로젝트를 빌드하면 정상적으로 작동합니다. 희망이 도움

+0

'src/main/webapp' 디렉토리는 일반적으로'war' 패키징에만 사용되는 반면, 스프링 부트 어플리케이션은'jar' 패키지로 더 많이 배치됩니다.또한이 질문은 전쟁이나 JSP에 관한 것이 아닙니다. 정적 인'index.html' 파일을 어떻게 표시하는지에 관한 것이 었습니다. –

0

src/main/resources/templates 폴더는 서버 측 템플릿 (예 : Thymeleaf, Mustache ... 사용) 용으로 사용됩니다. 당신이 404 오류가 발생하는 경우, 당신은 예를 들어, 종속 관계에있는 template engine를 제공하지 않은 가능성이 높습니다 :

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency> 

또 다른 원인은 컨트롤러 픽업, 그래서 WebController이 있는지 확인되지 않는 것입니다 SpringSimpleTestApplication (하위 패키지) (이것은 스프링 부트가 구성 요소를 검색하는 데 사용하는 기본 패키지입니다). 당신은 서버 측 템플릿을 필요로하지 않고 그냥 정적 index.html을 파일을 제공하려는 경우

그러나, 당신도 SRC에 넣어해야/주/자원/공공 또는 SRC/메인/리소스/정적. 이 경우 컨트롤러가 필요 없으므로 WebController (예 : Robert mentioned)을 삭제할 수 있습니다.

관련 문제