web-dev-qa-db-ja.com

TomcatにデプロイされたSpring Bootは404を提供しますが、スタンドアロンで動作します

REST APIを構築するために、約1か月間、Tomcatを組み込んだSpring Bootをテストしてきました。すべてが正常に機能していました。ここで、APIをいくつかの別の開発環境にデプロイします。 Tomcatコンテナで実行されている他の(Spring以外の)アプリケーションの。

Mavenを使用してSpring Boot JARアプリケーションをWARに変換する および Spring Boot Docs で指定された変更を行いました。

デプロイメントはうまくいき(ログは問題なく、エラーはありません)、Tomcatの管理を見ると、アプリケーションがデプロイされていることがわかります。しかし、curlで http:// localhost:8080/sophia/users にアクセスしようとすると、404になります。

どんな助けでも大歓迎です。

更新:

これが私のログです:

Netbeans:

NetBeans:Apache Tomcat 8.0.17へのデプロイプロファイルモード:falseデバッグモード:false強制再デプロイ:true

/home/bugz/workspace/pdcore/sophiaserver/target/sophia-server-1.0.0-SNAPSHOTでのインプレース展開

展開中です...

deploy?config = file%3A%2Ftmp%2Fcontext1845402702541504208.xml&path =/sophia

OK-コンテキストパス/ sophiaにアプリケーションをデプロイしました

開始中です...

start?path =/sophia

OK-コンテキストパス/ sophiaでアプリケーションを開始しました

Tomcat:

INFO 10:47:52:703 org.springframework.boot.context.embedded.ServletRegistrationBean-サーブレットをマッピング: 'dispatcherServlet' to [/ sophia/*]

INFO 10:47:54:042 org.springframework.boot.SpringApplication-8.285秒でアプリケーションを開始(JVMは12087.301で実行)

22-Jan-2015 10:47:54.060 INFO [http-nio-8080-exec-99] org.Apache.catalina.startup.HostConfig.deployDescriptor設定記述子の配備/ home/bugz/workspace/server/Apache-Tomcat- 8.0.17/conf/Catalina/localhost/sophia.xmlは12,091ミリ秒で終了しました

そして、カタリナlocalhostのsophia.xmlで:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" docBase="/home/bugz/workspace/pdcore/sophiaserver/target/sophia-server-1.0.0-SNAPSHOT" path="/sophia"/>

アクセスしてみました

  1. http:// localhost:8080/sophia/users
  2. http:// localhost:8080/sophia-server-1.0.0-SNAPSHOT/users (WARの名前)

最初のコードは404を返しますが、私のCORSフィルターBeanからのCORS情報が含まれています。 2番目の戻り値はCORS情報なしの404です(アプリケーションが起動して構成されていることを示していますが、コントローラーにアクセスできないようです)。

13
xelamitchell

check Java -versionは、Java 8で戦争を遵守し、TomcatがJava 7で実行されている場合、動作しません。

6

SpringBootServletInitializerを拡張して、configureメソッドをオーバーライドしてみましたか?述べたように ここ

コンテナー内でwarファイルとしてアプリを実行する場合と比較すると、jarファイルのエントリーポイントは[メインクラス]と異なります。

お役に立てれば。