`

找回Tomcat6中Administration Web Application

    博客分类:
  • Java
阅读更多

找回Tomcat6中Administration Web Application

在Tomcat6.x中安装配置Tomcat5.5.28中的Administration Web Application
source: http://bbs.cnpp.info/thread-137-1-1.html

Tomcat6中当前没有可用的Administration Web Application下载,可暂时在Tomcat6中配置使用Tomcat5.5.28的Administration Web Application。

下载:http://tomcat.apache.org/download-55.cgi

1、下载后解开压缩包,Copy包中apache-tomcat-5.5.28/server/webapps/下的admin文件夹到$CATALINA_HOME/webapps 文件夹中。

2、Copy $CATALINA_HOME/webapps/admin/文件夹中或包中apache-tomcat-5.5.28/conf/Catalina /localhost/下的admin.xml文件到$CATALINA_HOME/webapps/admin/META-INF /context.xml(或直接Copy到$CATALINA_HOME/conf/Catalina/localhost/admin.xml),并更改其中<Context>下的docBase属性到正确的路径:"${catalina.home}/webapps/admin"。

3、在浏览器打开admin对应的web url(如:http://localhost:8080/admin/),如果有类似于"HTTP Status 503 - Servlet action is currently unavailable"的错误,请查看$CATALINA_HOME/logs路径下的相关日志文件,查找错误信息。常见的错误如下:

    java.lang.NoClassDefFoundError: Could not initialize class org.apache.struts.taglib.html.HtmlTag

没有找到structs package,从http://struts.apache.org/download.cgi#struts2181下载struts-2.1.8.1-lib.zip解压后把struts-core-1.3.10.jar Copy到$CATALINA_HOME/lib文件夹中。

    java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

没有找到 org.apache.commons.logging,从http://commons.apache.org/downloads/download_logging.cgi下载commons-logging-1.1.1-bin.zip解压后把commons-logging-1.1.1.jar Copy到$CATALINA_HOME/lib文件夹中。

    java.lang.ClassNotFoundException: org.apache.commons.modeler.Registry

没有找到 org.apache.commons.modeler,从http://commons.apache.org/downloads/download_modeler.cgi下载commons-modeler-2.0.1.zip解压后把commons-modeler-2.0.1.jar Copy到$CATALINA_HOME/lib文件夹中。

Copy完后重启Tomcat.

4、所有错误解决后,刷新http://localhost:8080/admin/,可看到如下登录界面:


没用配置用户权限登录会出错:

    HTTP Status 403 - Access to the requested resource has been denied

5、打开$CATALINA_HOME/webapps/admin/WEB-INF/web.xml,可以看到Administration Web Application使用名为admin的role登录:

   1. ...
   2.   <!-- Security roles referenced by this web application -->
   3.   <security-role>
   4.     <description>
   5.       The role that is required to log in to the Administration Application
   6.     </description>
   7.     <role-name>admin</role-name>
   8.   </security-role>
   9. ...


修改Tomcat的用户配置文件:$CATALINA_HOME/conf/tomcat-users.xml(server.xml中配置的名为UserDatabase的Global Resource的Location属性指向的文件),添加admin role,并添加一个role为admin的用户:admin/admin:

   1. <?xml version='1.0' encoding='utf-8'?>
   2. <tomcat-users>
   3. ...
   4.   <role rolename="admin"/>
   5. ...
   6.   <user username="admin" password="admin" roles="admin"/>
   7. ...
   8. </tomcat-users>


如果已存在名为admin的user,则为该user 添加admin role:

   1. ...
   2.   <user username="admin" password="admin" roles="admin,manager"/>
   3. ...

复制代码
配置完用户后重启Tomcat.

6、使用在上一步中配置的用户admin,密码admin登录成功:


存在的问题:
  虽然在Tomcat5.5.28的Administration Web Application中可以读取和管理Tomcat6的配置信息,但存在一个问题,就是所有界面上所做的配置只能保存到内存中,而无法保存到具体的 xml配置文件中,重启Tomcat6后所做的配置更改就会丢失。

在catalina.xxx-xx-xx.log中可以看到如下内容:

    ...
    Dec 29, 2009 10:36:20 AM org.apache.catalina.users.MemoryUserDatabase save
    SEVERE: User database has been configured to be read only. Changes cannot be saved
    Dec 29, 2009 10:40:59 AM org.apache.catalina.core.StandardServer storeConfig
    SEVERE: StoreConfig mbean not registeredCatalina:type=StoreConfig
    Dec 29, 2009 10:42:41 AM org.apache.struts.action.RequestProcessor processMapping
    ...

看来之间是不能完好相容的。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics