こんにちは、Tomcatをインストールしたばかりで、実行しようとしていますが、manager/htmlに移動しようとすると、「要求されたリソース(/ manager/html)は使用できません」というエラーが表示されます。
ホームページ、/ docs、/ examplesはすべて正常に機能し、ログには何も表示されません。どうすれば修正できますか? Windows 7 64ビットでTomcat 6.0.20とJDK 1.6.0_21を使用しています。
Tomcatのmanager
フォルダー内にwebapps
という名前のフォルダーがあるかどうかを確認する必要があります。
Rubens-MacBook-Pro:Tomcat rfanjul$ ls -la webapps/
total 16
drwxr-xr-x 8 rfanjul staff 272 21 May 12:20 .
drwxr-xr-x 14 rfanjul staff 476 21 May 12:22 ..
-rw-r--r--@ 1 rfanjul staff 6148 21 May 12:20 .DS_Store
drwxr-xr-x 19 rfanjul staff 646 17 Feb 15:13 ROOT
drwxr-xr-x 51 rfanjul staff 1734 17 Feb 15:13 docs
drwxr-xr-x 6 rfanjul staff 204 17 Feb 15:13 examples
drwxr-xr-x 7 rfanjul staff 238 17 Feb 15:13 Host-manager
drwxr-xr-x 8 rfanjul staff 272 17 Feb 15:13 manager
その後、ファイルconf/Tomcat-users.xml
にユーザー用のこのパーミントがあることを確認します。
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="test" password="test" roles="admin-gui,manager-gui"/>
tomcatを再起動し、Tomcatを再度統計します。
sh bin/shutdown.sh
sh bin/startup.sh
それがうまくいくことを願っています。
最初にアクセスを有効にする必要があります。 Manager Application Accessの設定
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バージョンです(少なくとも、変更ログによると)。その結果、Tomcat Managerは使用したTomcatのバージョンと互換性がありませんでした。ここでこの問題の説明を掘り下げました: http://blog.techstacks.com/.m/2009/05/Tomcat-management-setting-up-Tomcat/comments/
修正手順:
これで、Tomcatマネージャーにアクセスできるはずです。
私の問題/解決策は非常に恥ずかしいですが、誰が知っている...おそらく他の誰かに起こった:
私の解決策:プロキシをオフにする
過去2時間、私はマネージャーがなぜ読み込まれないのかと思っていました。 (ルートがキャッシュされたため、ロードされました)。ブラウザのプロキシを設定して、自宅へのトラフィックをプロキシしていました。 :/
Tomcat-users.xmlファイルが正しく設定されていても、マネージャーアプリにログインできませんでした。問題は、Tomcatがデータベースからユーザーを取得するように構成されていたことです。これがすべてどのように機能するかを知っていた従業員が会社を辞めたので、これをすべて追跡しなければなりませんでした。
プロジェクトweb.xmlに次のようなWebアプリケーションがある場合:
<security-role>
<role-name>manager</role-name>
</security-role>
これはTomcatと同じシステムをログインに使用していることに注意してください!そのため、マネージャーロールのユーザーが定義されている場所、つまりマネージャーGUIのロールとユーザーを定義する必要があります。 server.xmlでこれを見つけました:
<Realm className="org.Apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/<DBName>?user=<DBUser>&password=<DBPassword>"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
これは、すべてのユーザーとロールを保存するデータベースがあることを示しています。これにより、Tomcat-users.xmlファイルが上書きされます。このファイルは、このレルムがコメント化されない限り機能しません。解決策は、Tomcatユーザーをusersテーブルに追加し、manager-guiロールをuser_rolesテーブルに追加することです。
insert into users (user_name, user_pass) values ('Tomcat', '<changeMe>');
insert into user_roles (user_name, role_name) values ('Tomcat', 'manager-gui');
また、ロールテーブルに「manager-gui」ロール名が必要です。存在しない場合は追加します。これが誰かを助けることを願っています。
[〜#〜] root [〜#〜]ディレクトリが../webapps
フォルダーにないため、ウェブサイトは空白です。特定の場所については、 Tomcat documentation を参照してください。
私の場合、フォルダーは_Managerでした。名前をManagerに変更した後、機能しました。
ログインポップアップが表示され、conf/Tomcat-users.xmlから資格情報を入力すると、すべて正常に機能します。