2016-11-27 4 views
1

Привет, я использую весенний ботинок с упаковкой банку maven. Моя структура проекта выглядит следующим образом enter image description hereВесна с maven, упаковка jar, не отображающая welcome.jsp страница

Я начинаю свой проект из командной ПРОМТ с помощью этой команды: МВН пакет & & Java -jar мишень/ProjekatNekretnine-0.0.1.jar, и она начинает совершенен. Чем я перехожу на http://127.0.0.1:8080/api/users/home, и я не получаю мою страницу welcome.jsp. Мой класс контроллера выглядит следующим образом:

UserController класс:

package com.projekat.nekretnine.controller; 

import org.springframework.ui.Model; 
import org.springframework.validation.BindingResult; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RestController; 

import com.projekat.nekretnine.Model.Korisnik; 

@RestController 
@RequestMapping(value="api/users") 
public class UserController { 

    @RequestMapping(value = "/home") 
    public String welcome(Model model) { 
     return "welcome"; 
    } 

} 

Я думаю, что мой метод приветствуется должен вернуть мой файл welcome.jsp, но вместо этого он пишет «прием» на стр. Почему это так? Что я делаю не так?

Мой файл welcome.jsp выглядит следующим образом:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title>Getting Started: Serving Web Content</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
    <h1>This is working.</h1> 
</body> 
</html> 

Итак, вы видите, что он не должен писать прием.

Вот мой pom.xml для вас, чтобы посмотреть:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.projekat.nekretnine</groupId> 
    <artifactId>ProjekatNekretnine</artifactId> 
    <version>0.0.1</version> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
    </properties> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.2.RELEASE</version> 
    </parent> 

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

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

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

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

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

     <dependency> 
      <groupId>io.jsonwebtoken</groupId> 
      <artifactId>jjwt</artifactId> 
      <version>0.4</version> 
     </dependency> 

     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <!-- <version>5.1.30</version> --> 
     </dependency> 

    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 
</project> 

Еще одна вещь, когда я создал проект Maven, я выбрал, что упаковка должна быть JAR, не WAR. Я не знаю, нужен ли мне сейчас web.xml или другие файлы xml, я думаю, что нет. Возможно, ошибка заключается в том, где я помещаю свои статические файлы, если это проблема, можете ли вы сказать мне, где положить tham?

И я попытался использовать @Controller вместо @RestController в моем классе UserController и все еще та же проблема.

Заранее спасибо.

+0

Вы делаете веб-приложение, вы должны сделать ВОЙН, а не JAR. WAR = Архив веб-приложений – Tunaki

+0

Добавьте код для класса SpringBootServletInitializer и добавьте, если есть другие классы конфигурации – developer

ответ

2

Поведение, которое вы испытываете, является нормальным. Это происходит потому, что вы указали своему контроллеру (в частности, вашему контроллеру отдыха) вернуть объект String при его ударе/api/users/home endpoint. Если вы хотите открыть страницу (представление) в этой конечной точке, вы должны настроить весеннюю загрузку для использования функции InternalResourceViewResolver.

Вы можете взглянуть на аналогичный вопрос Configure ViewResolver with Spring Boot and annotations gives No mapping found for HTTP request with URI error. и примените изменения для вашего контроллера, чтобы вернуть страницу приветствия.

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