Tomcat 管理器应用程序和 HTTP 404 错误

Mei*_*Mei 6 apache2 tomcat

我正在尝试为 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
Run Code Online (Sandbox Code Playgroud)

在 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>
Run Code Online (Sandbox Code Playgroud)

我找到了建议我需要manager-gui安装和定义角色的文档,但这似乎是 Tomcat 7,而不是 Tomcat 6。

manager.xml 是 Ubuntu Lucid Lynx 10.04 默认提供的:

<Context path="/manager" 
        docBase="/usr/share/tomcat6-admin/manager" 
        antiResourceLocking="false" privileged="true" />
Run Code Online (Sandbox Code Playgroud)

如果我/manager从 Web 浏览器访问,我会收到来自 Tomcat 的 404 错误:“请求的资源不可用”。如果我访问/manager/images我得到同样的东西。如果我访问,/manager/401.jsp我会得到实际页面。

此外,server.xml 不仅有通常的 Realm(UserDatabaseRealm),还有用于 MySQL 认证的Realm (JDBCRealm)。调查这表明用户的角色manager不存在admin;我通过以下方式解决了这个问题:

INSERT USER_ROLE_DB SET USER_NAME='admin', ROLE_NAME='manager';
Run Code Online (Sandbox Code Playgroud)

我重新启动了 Tomcat,虽然我怀疑这有点矫枉过正。没变。我在 catalina.out 或 localhost.* 日志文件中没有看到任何错误。

我错过了什么?不同领域之间的相互作用是什么?我如何让经理应用程序工作?

小智 4

我也遇到过同样的情况,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)
        ...
Run Code Online (Sandbox Code Playgroud)

引发此异常的原因是我使用了没有 CSRF 预防过滤器的 tomcat 版本。

Tomcat 6.0.24 中没有 CSRF 预防过滤器。第一个拥有它的版本是 6.0.30 版本(至少根据变更日志)。

结果,Tomcat Manager 与我使用的 Tomcat 版本不兼容。我找到了这个问题的描述

修复步骤:

  1. 通过从 tomcat/bin 目录运行“sh version.sh”来检查安装的 tomcat 版本
  2. 下载对应版本的tomcat
  3. 停止雄猫
  4. 从您下载的分发中删除 webapps/manager 目录和复制管理器应用程序。
  5. 启动tomcat

现在您应该能够访问 tomcat 管理器了。


小智 2

404的意思是你没有文件可以访问。我在 Amazon EC2 上安装了 tomcat 7 并收到了 404 消息。默认情况下不附带管理器包和文档。

sudo yum install tomcat6-webapps tomcat6-docs-webapp tomcat6-admin-webapps
Run Code Online (Sandbox Code Playgroud)