web-dev-qa-db-ja.com

WARファイルをデプロイすると、Tomcatに404ステータスコードが表示されますか?

私はトムキャットにかなり新しいです。プロジェクトをビルドして、WARファイルとしてエクスポートしました。 WARファイルをTomcatフォルダーに手動でコピーしてから再起動してみました。フォルダ構造とすべてを作成しましたが、アプリケーションにアクセスしようとすると404ステータスコードが表示されます。 Tomcatの管理パネルからデプロイしようとしましたが、同じ動作が見られます。基本的に間違っていることをしていますか?

32
Legend

Tomcatのインストールに対する完全な特権があると想定して、http://localhost:8080/manager/html/、そのエリアに入るためのパスワードがわからない場合は、Tomcat-users.xmlファイルを${Tomcat-installation}/confディレクトリ、そしてそれがあるはずです。エントリがない場合は、次のようなエントリを追加します。

<user username="username" password="password" roles="admin,manager" />

アプリケーションがその画面に表示されるかどうかを確認し、表示される場合はリンクをクリックして、どこに移動できるかを確認します。表示されない場合は、ifishersのアドバイスに従い、ログファイルを調べてエラーがないかどうかを確認することをお勧めします。

しかし、長い話は短く、おそらくプロジェクトのweb.xml

11
Thomas

私は同じ問題を抱えています。私の問題は、アプリケーション名とwarファイル名が異なることです。 warファイル名をアプリケーション名に変更しました。

ここで、アプリケーションがデプロイされると、Tomcatは同じ名前のwarファイルを自動的に抽出します。私の場合、サービス名はmy-web-service(ie https:// localhost:8080/my-web-service / )で、warファイル名はMY-Java-connector-0.0です。 1-SNAPSHOT.war(これは私のプロジェクトフォルダー名です)。これでTomcatはmy-web = serviceフォルダーを探し、epicor-Java-connector-0.0.1-SNAPSHOTフォルダーを見つけます。フォルダーの名前をmy-web = service.warに変更すると、機能します。

4
Harshil

私の推測では、web.xmlでウェルカムファイルを設定していないと思います。/app /に移動する場合は、いくつかのデフォルトファイルを使用できるようにする必要があります。通常、人々はindex.htmlを作成するか、ユーザーに正しいjspを示すウェルカムファイル設定を持っています。

3
Robert Diana

同じ問題がありました。私の問題は、sftpを介してファイルをTomcatのwebappsディレクトリに直接コピーしていたため、ポーリングの問題が発生し、正しく展開されなかった可能性があることです。 Tomcatはwebapps dirを監視し、.xmlを検出するとクラックして処理を実行しますが、問題はおそらくすべてがまだコピーされていないことです。 :(

ステージングフォルダーを作成し、そのフォルダーにwarを移動またはコピーしてから、linux mvコマンドを使用してそれをwebappsに移動することをお勧めします。mvはアトミックなので、Tomcatは操作が完了するまで何もしません。

マジック。

クレジットは、私がjavaranceで見つけた非常にランダムな投稿に送られます。投稿は次のようになります。 http://pub.admc.com/howtos/Tomcat/ch02.html#stagedir-section

これが他の誰かを助けることを願っています:)

3
null

最近では、Java_HOMEがWARのコードよりも前のバージョンのJavaを指している場合に、この条件が発生する可能性があります。Tomcatは、Java_HOMEを使用して、Tomcatのstartup.batを実行した後に表示されるJRE_HOMEを特定する場合があります。 BINディレクトリ。Tomcat自体はJava=バージョンの取得に満足しているかもしれませんが、アプリケーションではこれでは不十分な場合があります。私の場合、Tomcat 8.0.49はJDK1.7で問題なく実行されていました。アプリケーションはまったく初期化されていませんでしたが(はい、それはSpring Bootアプリケーションであり、WARは解凍されていましたが、それだけです)、Java_HOMEをJDK1.8の場所に設定した後、問題は解決しました。

2
hello_earth

私もこの問題に遭遇しました。

私の簡単な迂回ソリューションは、docBaseパスを変更することです。

問題は

docBase=".../Tomcat/webapps/app_name.war";

で解決した問題

docBase=".../Tomcat/webapps/app_foldername/web"
1
Carrie Zhang

私はTomcatで同じ問題を抱えており、IDEにweb.xmlファイルを作成するように強制することで修正しました。鉱山がありませんでした。プロジェクトをデプロイしましたが、それでも404エラーが発生します。これらのチュートリアルのいくつかを読みましたが、役に立ちませんでした。web.xmlファイルを正しく構成する必要があることをどこかで読みました。WEB-INFフォルダーでweb.xmlを探しに行ったところ、フォルダーもWebもありませんでした。 xmlファイル。私は自分のIDEを使用して作成する方法について簡単なグーグルを実行し、web.xml出力を使用してプログラムをコンパイルしました。それによって問題が解決しました。それが役に立てば幸いです。乾杯!

0
Ohlaph

FWIW私はこの問題を抱えており、 " http:// wronghost:8080/why_is_this_war_not_there "のように間違ったホストにアクセスしていたことを発見して修正しました。 out/localhost。*。outは、フォロワーにとってのヒントになる場合があります。

0
rogerdpack

Index.html JSPなどのウェルカムページをまだ作成していない場合は、作成します。プロジェクトにはインデックスページが必要です。 index.htmlを1つ作成したところ、問題は解決しました.. ????????????

0
Mukesh Sharma

私のようにSpring-Bootを使用してWARファイルを作成している場合は、メインのアプリケーションファイルに以下を追加してください。

@SpringBootApplication
public class serverTestApplication extends SpringBootServletInitializer {


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

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(serverTestApplication.class);
    }
}

私はしばらくの間これに行き詰まり、何十人ものガイドに目を通しました。これは、アプリケーションを適切に構成したことがないことを最終的に示したビデオです。 https://www.youtube.com/watch?v=05EKZ9Xmfws

0
geppy