2013-01-08 81 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中,管理員腳本角色缺乏實例。然後,如果我仔細閱讀了文檔,首先我不會有任何問題;) –