2017-02-09 2 views
1

Использование NetBeans 8.1.Не удается запустить простой проект Spring Boot

У меня есть простой проект загрузки java Spring без каких-либо бобов или настойчивости. Два класса 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"; 
    } 
} 

И "index.html" файл под SRC/основные/Resources-> Шаблоны

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

Когда я запустить его у меня нет никаких ошибок, но когда я иду http://localhost:8080/ У меня есть Ошибка Whitelabel Страница:

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/static, а не src/main/resources/templates.

Во-вторых, вам не требуется сопоставление запросов для статических ресурсов. Они просто работают.

Итак, переместите index.html, удалите WebController, и он будет работать.

0

Вы размещаете ваш html в неправильном каталоге. Это причина, по которой вы получаете эту ошибку.

В проекте Spring Boot, файл каталога html каталога каталога по умолчанию является src/main/webapp. Однако, это трудно показать это с вами здесь. Я нашел это из учебника Spring Boot Maven Example Hello World with JSP

Если вы создаете проект Spring Boot с помощью Thymeleaf, то по умолчанию это каталог src/main/resources/templates. Вы можете обратиться к сообщению Spring Boot Thymeleaf Hello World Example

Я просто создаю проект с обоими случаями, он работает нормально. Надеюсь, эта помощь

+0

Каталог 'src/main/webapp' обычно используется только для упаковки' war', тогда как приложения Spring Boot чаще используются в качестве пакетов '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 (это пакет по умолчанию, который использует Spring для сканирования компонентов).

Однако, если вам не нужны ServerSide шаблоны и вы просто хотите, чтобы служить статический index.html файл, вы должны поместить его либо в SRC/основные/ресурсы/государственные или SRC/главная/ресурсы/статические. В этом случае вам также не нужен контроллер, поэтому вы можете удалить WebController, как Robert mentioned.

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