2016-11-27 12 views
1

こんにちは私はmaven jarパッケージでSpringブートを使用しています。私のプロジェクトの構造は、私は、このコマンドを使用して、コマンドPROMTからの私のプロジェクトを始めています。この enter image description heremaven、jarパッケージ化、welcome.jspページが表示されないスプリング

次のようになります。 MVNパッケージを& &の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です:私はMavenプロジェクトを作成したとき

<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> 

もう一つは、私は、包装は、WAR JARないなければならないことを選択しました。 web.xmlやその他のxmlファイルが必要かどうかは分かりませんが、私はそうは思わないでしょう。多分、間違いは私が静的なファイルを置くところです。それが問題なら、どこにthamを置くか教えてください。

そして、私のUserControllerクラスで@RestControllerの代わりに@Controllerを使用しようとしましたが、それと同じ問題です。

ありがとうございます。

+0

Webアプリケーションを実行しているときは、JARではなくWARを作成する必要があります。 WAR = Webアプリケーションアーカイブ – Tunaki

+0

SpringBootServletInitializerクラスのコードを追加し、その他の設定クラスがある場合は追加します – developer

答えて

2

あなたの動作は正常です。 これは、/ api/users/home endpointにヒットしたときにコントローラ(特にあなたのrest-controller)にStringオブジェクトを返すように指示したために起こります。 しかし、このエンドポイントでページ(ビュー)を公開する場合は、InternalResourceViewResolverを使用するようにスプリングブートを設定する必要があります。

あなたは同様の質問Configure ViewResolver with Spring Boot and annotations gives No mapping found for HTTP request with URI errorを見ることができます。ウェルカムページを返すためにコントローラに変更を適用します。

関連する問題