2017-12-05 10 views
0

私は春のブートを使用しています。私はTomcatサーバーに残りのAPI warファイルを展開したいと思います。 Tomcatサーバーのログにエラーはありませんが、私が404を "見つけられません"というエンドポイントを呼び出すと、Tomcatサーバーから同じものが得られます。deploy spring boot with tomcat

Javaのバージョン:8 Tomcatのバージョン:9

たぶん私はここに、何かを見逃しては私のコードサンプルです:

ポンポン:

<?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>com.test</groupId> 
<artifactId>test</artifactId> 
<version>1.1</version> 
<packaging>war</packaging> 

<name>test</name> 
<description>test API</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.1.RELEASE</version> 
    <relativePath /> <!-- lookup parent from repository --> 
</parent> 

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

<dependencies> 

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



    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 

     <!-- tag::security[] --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    <!-- end::security[] --> 


    <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-jdbc</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
</dependencies> 

<build> 
    <defaultGoal>install</defaultGoal> 

    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>3.0.0</version> 
      </plugin> 

     </plugins> 
    </pluginManagement> 
    <!-- To use the plugin goals in your POM or parent POM --> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
</project> 

2.Application.java

@SpringBootApplication 
public class TestApplication extends SpringBootServletInitializer { 

@Override 
protected SpringApplicationBuilder configure(SpringApplicationBuilder 
application) { 
    return application.sources(TestApplication.class); 
    } 


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

} 
+0

あなたが 'spring-boot'を使用している場合、ここに埋め込まれたtomcatを使用しています。他のTomcatサーバに展開する必要はなく、 'jar'' jar 'にパッケージし、' java -jar abc.jar'コマンドを使ってアプリケーションを実行してください。 –

+0

私の場合は、私はルートコンテキストを使用していなかったので、 'webapps'から' ROOT'ディレクトリに移動しました。私は 'www.example.com/myAppName'のような完全なURLだけを使用していました。それでも私は404を取得し始めました。これは 'ROOT'ディレクトリを元に戻してから動作します。理由を理解しようとしています... –

答えて

0

はい私は似たようなエラーがありました。私の場合、私はSpringセキュリティセッションのオブジェクトをautowireして循環参照エラーを表示します。 autowiredオブジェクトの上に@Layアノテーションを追加しました。詳細については、リンクをご確認ください。

https://www.quora.com/How-can-you-fix-Requested-bean-is-currently-in-creation-Is-there-an-unresolvable-circular-reference-while-deploying-a-Spring-Security-application-in-Tomcat

0

ROOTコンテキストとしてTomcatサーバーにSpringブートアプリケーションを実行します。

あなたの春のブートアプリケーション(これは悪い方法です)を使用してtomcatサーバーのROOT.warを変更するか、それを設定できます。

+0

多分あなたは別の投稿からこの質問に答えることができます。 https://stackoverflow.com/questions/27904594/spring-boot-war-deployed-to-tomcat?rq=1 – ismailzakky

0

私は同様の問題を修正しました。エラーはありませんが、Webページを開いたときに警告が表示されます。 「警告:マッピングが見つかりません」と表示される可能性があります。 アプリケーションクラスで、SpringBootServletInitializerとmetodeをオーバーライドする必要はありません。自動ブート用にスプリングブートが開発されました。 HTMLまたはJSPページは、resources/templateまたはresources/staticフォルダになければなりません。閲覧してくださいServing Web Content with Spring MVCthisページをご覧ください。

関連する問題