3

Tomcat 5.5で正常に動作しているSpring Webアプリケーションがあります。同じ Web アプリを tomcat 6 コンテナーにデプロイしようとしたところ、いくつかの問題が発生しました。

私が経験した主な 2 つの問題は、jstl のコンテナーの構成と、Spring セキュリティ ログインを適切に機能させることに関するものです。

ここから $CATALINA_HOME/lib ディレクトリに jstl-1.2.jar ライブラリを含めることで、jstl 構成の問題を解決したと思います(ただし、これを機能させる方法を見つけるのが非常に難しいのは奇妙に思えますが) )。

現在の主な問題は、フォーム ベースの認証を使用してログインしようとすると、ログイン フォームが「j_spring_security_check」に送信されるときに HTTP 404 エラーが発生することです。

春のセキュリティ ドキュメントに従って web.xml ファイルにフィルターを設定しましたが、Tomcat がこれを期待どおりに呼び出していないようです。

私の構成には確かに基本的なものが欠けているので、誰かがここで経験を共有できることを願っています。

ありがとう。

更新:ここでの回答に基づいてトラブルシューティングを行っているときに、最終的に tomcat 6.0.18 の新しいコピーをダウンロードし、WEB-INF/lib ディレクトリに jstl-1.2.jar ファイルがあることを確認しました。面白いことに、アプリは正常に動作しているようです。

私は少し困惑していますが、エラーの原因となった 2 つの tomcat インストールの違いを追跡し、ここにさらなる更新を投稿しようと思います。

この人たちへの応答をありがとう。

4

3 に答える 3

1

あなたが提供した情報に基づいて、何が悪いのかを判断するのは非常に困難です。

Tomcat5.x以前ではcommon/libに使用されていた共通共有ライブラリ。現在、それらは/libディレクトリに属しています。

個人的には、サーバーを特定の方法でセットアップすることに依存する必要がないため、デプロイメントのWEB-INF/libにできるだけ多く入れることを好みます。クラスローダーがWARファイルで必要なすべてのJARを見つけることができれば、私は満足しています。

Tomcat5.xと6.xはどちらもJSTLバージョン1.2JARを使用しているため、これは一般的です。変更された場所です。WEB-INF/libにある必要なJARを使用してWARファイルを作成することをお勧めします。

以前はACEGIと呼ばれていたモジュールであるSpringSecurityを使用している場合は、それらのJARも使用可能であることを確認してください。

HTTP404-デプロイメントやURLの問題だけではないことを確認してください。

構成ファイルからコメントアウトして再起動することにより、Springセキュリティをオフにしてみてください。他のすべてが順調であれば、アプリはすぐに起動するはずです。そうすれば、集中する必要があることがわかります。そうでない場合は、他に問題があるものを検索し続けることができます。

于 2009-02-08T12:33:28.837 に答える
1

Maven を使用する場合は、jstl が必要です。

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <scope>runtime</scope>
    </dependency>
于 2009-02-08T08:51:17.897 に答える
0

私はduffymoに同意しますが、十分な情報がありません。アプリケーションで冗長ログをオンにして、ログに明らかなものがあるかどうかを確認してください。

于 2009-02-09T00:55:03.687 に答える