web-dev-qa-db-ja.com

Tomcat ManagerアプリケーションとHTTP 404エラー

Tomcat 6.0.24インスタンスの管理アプリケーションをセットアップしようとしています。これまでに行った検索では、使用できるものは見つかりませんでした。 Apache 2.2.14にこの構成を使用しています。

Alias /manager /usr/share/Tomcat6-admin/manager

<Directory "/usr/share/Tomcat6-admin/manager">
        Options Indexes FollowSymLinks
        AllowOverride None
        allow from all
</Directory>

ProxyPass /manager ajp://localhost:8009/manager

Tomcat-users.xmlには次のものがあります。

<Tomcat-users>
  <role rolename="Tomcat"/>
  <role rolename="admin"/>
  <role rolename="operator"/>
  <role rolename="manager"/>
  <user username="admin" password="nopasswordforyou" roles="admin,Tomcat,manager"/>
  <user username="operator" password="nevermind" roles="operator"/>
</Tomcat-users>

manager-guiロールをインストールして定義する必要があることを示唆するドキュメントを見つけましたが、Tomcat 6ではなくTomcat 7のようです。

Manager.xmlは、Ubuntu Lucid Lynx 10.04で提供されるデフォルトです。

<Context path="/manager" 
        docBase="/usr/share/Tomcat6-admin/manager" 
        antiResourceLocking="false" privileged="true" />

Webブラウザーから/managerにアクセスすると、Tomcatから404エラーが表示されます:「要求されたリソースが利用できません。」 /manager/imagesにアクセスすると、同じことが起こります。 /manager/401.jspにアクセスすると、実際のページが表示されます。

さらに、server.xmlには通常のレルム(UserDatabaseRealm)だけでなく、MySQL認証用のレルム(JDBCRealm)もあります。これを調査した結果、ユーザーmanagerにはadminの役割が存在していなかったことがわかりました。私はそれを修正しました:

INSERT USER_ROLE_DB SET USER_NAME='admin', ROLE_NAME='manager';

Tomcatを再起動しましたが、やりすぎだと思います。変化なし。 catalina.outまたはlocalhost。*ログファイルにエラーは表示されません。

私は何が欠けていますか?異なるレルム間の相互作用は何ですか?マネージャーアプリケーションを機能させるにはどうすればよいですか?

6
Mei

Tomcatマネージャーが起動しないという同じ状況がありました。 logs/manager.DDD-MM-YY.logでこの例外を見つけました。

org.Apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter CSRF
Java.lang.ClassNotFoundException: org.Apache.catalina.filters.CsrfPreventionFilter
        at Java.net.URLClassLoader$1.run(URLClassLoader.Java:202)
        ...

CSRF防止フィルターのないバージョンのTomcatを使用していたため、この例外が発生しました。

Tomcat 6.0.24にはCSRF防止フィルターがありません。最初のバージョンは6.0.30バージョンです(少なくともchangelogによると)。

その結果、Tomcat Managerは使用したTomcatのバージョンと互換性がありませんでした。この問題の この説明 が見つかりました。

修正手順:

  1. Tomcat/binディレクトリから「sh version.sh」を実行して、インストールされているTomcatのバージョンを確認します
  2. Tomcatの対応するバージョンをダウンロードする
  3. Tomcatを停止します
  4. Webapps/managerディレクトリを削除し、ダウンロードした配布アプリケーションからマネージャーアプリケーションをコピーします。
  5. Tomcatを起動します

これで、Tomcatマネージャーにアクセスできるはずです。

3
Sergey Smirnov

代わりに直接/manager/htmlにアクセスしてください。私のために働いた。

2
Etienne

404の意味は、アクセスするファイルがないことです。 Amazon EC2にTomcat 7をインストールし、404メッセージを受け取りました。デフォルトには、マネージャーパッケージとドキュメントが付属していません。

Sudo yum install Tomcat6-webapps Tomcat6-docs-webapp Tomcat6-admin-webapps
2
Yoon Lee

Tomcatプロセスがバックグラウンドでスタックしていないことを確認します

ps -eaf | grep -i Tomcat

サービスがフリーズしたため、service Tomcat8 stopがTomcatサービスを停止していなかったことを認識する前に、しばらくの間再構成されました。

強制終了してからサービスを再起動しました。

0
kervin

Ubuntuで「Sudo apt-get install Tomcat6-admin」を使用してTomcat6-adminをインストールしようとしましたが、パッケージはすでに最新であると言われました。/usr/share/Tomcat6-admin/managerをTomcat6 webappsディレクトリにコピーすることにしました。今は動作します。

インストールでマネージャーアプリがwebappsディレクトリにコピーされない理由がわかりません。

0
Willa O Ng'wana

ガイド に従っていますか?いくつかの可能性:

  • アプリケーションがインストールされていない-Sudo apt-get install Tomcat7-adminで修正する(必要に応じてTomcatバージョンに変更する)
  • AJPを使用していると思われる場合、Apacheの構成が間違っている可能性があります。私は正常に使用しました

    <Location /manager>

    ProxyPass ajp://localhost:8009/manager

    </Location>

    /etc/Tomcat7/server.xmlに対応するエントリ:

    <Connector port="8009" enableLookups="false" URIEncoding="UTF-8" protocol="AJP/1.3" redirectPort="8443" proxyPort="443" scheme="https" secure="true" />

0
beldaz