2017-04-25 22 views
1

実行可能なスプリングブートjarファイルを作成する際に問題が発生しています。実行可能なSpringブートjarでビューが解決されない

構成:

@SpringBootApplication 
public class RootConfig { 

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

    @Bean 
    public ViewResolver viewResolver() { 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix("/WEB-INF/views/"); 
     resolver.setSuffix(".jsp"); 
     resolver.setExposeContextBeansAsAttributes(true); 
     return resolver; 
    } 
} 

コントローラ:

@Controller 
public class Index { 

    @RequestMapping(value = "/") 
    public String index() { 
     return "index"; 
    } 
} 

POM:

<?xml version="1.0" encoding="UTF-8"?> 
<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>groupId</groupId> 
    <artifactId>bootTest2</artifactId> 
    <version>1.0-SNAPSHOT</version> 

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

    <packaging>jar</packaging> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
      <!--<scope>provided</scope>--> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
      <!--<scope>provided</scope>--> 
     </dependency> 
    </dependencies> 

</project> 

JSP:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
    <head> 
    <title>$Title$</title> 
    </head> 
    <body> 
    Test page! 
    </body> 
</html> 

構造:

structure

アイデア最低料金:コマンドラインから実行可能なjarファイルを起動する

idea

enter image description here

、このような問題を解決する方法は?

答えて

3

埋め込みサーブレットコンテナを使用する(実行可能アーカイブとしてパッケージ化された)Springブートアプリケーションを実行する場合、JSPサポートにはいくつかの制限があります。 Tomcatのでは

  1. それはあなたが戦争のパッケージを使用している場合、すなわち、実行可能な戦争が動作する動作するはずですし、また標準 コンテナ(これらに限定されないが、Tomcatを含む)に展開可能となります。実行可能なjar は、Tomcatのハードコードされたファイルパターンのために動作しません。
  2. 戦争パッケージングを使用している場合、つまり実行可能な戦争が有効で、標準の コンテナにも展開可能な場合、Jettyを使用するとうまくいくはずです。

あなたは、このリンクは質問に答えるかもしれないが、ここでは答えの重要な部分を含めるとのリンクを提供することをお勧めします。この例でhere

Reference

+0

を見たいと思うかもしれません参照。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 15942646) – nvoigt

+0

編集しました。 – Sajjad

関連する問題