2013-01-08 53 views
7

我试图让我的新安装的Tomcat 7.0.34管理器/部署工作,但是当我尝试通过执行PUT来部署时,我总是收到403在http://localhost:8080/manager/deploy。我还没有在Tomcat中得到这个工作7.Tomcat 7 tomcat用户管理器脚本示例/ deploy

的conf/server.xml中

<?xml version='1.0' encoding='utf-8'?> 
<Server> 
... 
    <GlobalNamingResources> 
    <Resource name="UserDatabase" auth="Container" 
      type="org.apache.catalina.UserDatabase" 
      description="User database that can be updated and saved" 
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
      pathname="conf/tomcat-users.xml" /> 
    </GlobalNamingResources> 
    <Service> 
    ... 
    <Engine> 
    ... 
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
      resourceName="UserDatabase"/> 
    </Engine> 
    </Service> 
</Server> 

的conf/tomcat的-users.xml中

<?xml version='1.0' encoding='utf-8'?> 
<tomcat-users> 
    <user username="tomcat" password="redacted" roles="manager-script"/> 
</tomcat-users> 

我也尝试过(结果相同)

conf/tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?> 
<tomcat-users> 
    <role rolename="manager-script"/> 
    <user username="tomcat" password="redacted" roles="manager-script"/> 
</tomcat-users> 

是的,我已经两倍,三倍,四倍检查,我使用正确的用户名和密码,在tomcat-users.xml中定义的。我认为这是我所需要的。有任何想法吗?

回答

7

所以,我终于明白了!上述

首先,上述所有设置都正确(Tomcat的用户的任一版本是正确的,但我认为第一个是正确。

它可能不是已经明确,最初,但我是从Tomcat 6迁移我缺少的是,我是把该URL它应该是: http://localhost:8080/manager/**text**/deploy

现在一切都很正常,我希望这有助于在未来:)

+0

确实有人。 ,Tomcat 6和Tomcat 7之间的URL已经改变了在Tomcat 7中有另一个小的差异,这可能与一些读者有关:Catalina Manager mbean名称已更改(“Catalina:type = Manager,context = $ {app.path},host = ...”,使用了Tomcat 6路径而不是上下文)。 – proko

+0

酷!我个人不使用mbeans,但我想我们可以在这里得到一些很好的信息,这可能会在未来为别人节省一些痛苦。在Tomcat 7中,管理员脚本角色缺乏实例。然后,如果我仔细阅读了文档,首先我不会有任何问题;) –