2011-09-22 86 views
1

的pom.xml:行家tomcat7部署

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <configuration> 
     <url>http://localhost:8080/manager/html</url> 
     <server>myserver</server> 
     <path>/test</path> 
     <warFile>${project.build.directory}/${project.build.finalName}.war</warFile> 
    </configuration> 
</plugin> 

Eclipse的使用:的Eclipse靛藍3.7與M2E插件

改性 Tomcat7/CONF/Tomcat的users.xml中

<role rolename="admin"/> 
    <role rolename="manager"/> 
    <user username="admin" password="admin" roles="admin,manager"/> 
</tomcat-users> 

的context.xml Tomcat7/conf/context.xml文件,更改下<context>

<Context antiJARLocking="true" antiResourceLocking="true"> 

Apache的行家\的conf \ settings.xml的

添加以下下的服務器標籤條目:

<servers> 
    <server> 
    <id>myserver</id> 
    <username>admin</username> 
    <password>admin</password> 
    </server> 

啓動tomcat服務器

目標運行:tomcat的:部署tomcat的:取消部署

收到以下錯誤:

[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project test: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Ftest&war=&update=true -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

項目名稱:測試

戰爭文件名:test-1.0-SNAPSHOT.war

類似的問題找到,但因此未得到多大用處:Tomcat-maven-plugin 401 error

tomcat-maven-plugin 403 error

+0

當你訪問這個URL:'http:// localhost:8080/manager/html'時,你是否加載了一個頁面? –

+0

不,它說403錯誤msg – TechFind

回答

3

添加manager-gui的角色:

<user username="admin" password="admin" roles="admin,manager,manager-gui" /> 

並重新啓動Tomcat。

確保您的XML配置文件正在使用中。一個簡單的方法是在其中寫入一個未封閉的標籤並檢查錯誤消息。如果您沒有收到任何寫入未使用的XML的錯誤消息。

+1

做了Manager-gui角色後,出現以下錯誤:未能執行目標org.codehaus.mojo:tomcat-maven-plugin:1.1:在項目上重新部署(default-cli)test:無法調用Tomcat管理器:失敗 - 上下文/測試在server.xml中定義,並且可能不會被取消部署 [錯誤]失敗 - 應用程序已存在於路徑/測試 – TechFind

+0

刪除' palacsint

+0

當我這樣做改變應用程序工作正常。但是,如果我執行-mvn清理所有已修改的與服務器相關的xml文件(即context.xml,server.xml,tomcat-users.xml),那麼文件將被視爲原始文件。爲什麼發生這種情況? – TechFind

1

在Tomcat的7,你應該設置

<user username="admin" password="admin" roles="manager-script,manager-gui" /> 

使用Maven插件

+0

非常非常非常感謝你的伴侶。我一直在努力讓這個工作幾個小時。我每次嘗試部署並添加'manager-script'時都會收到403錯誤。 – mlevit

6

雖然後期答案部署,有人可能會發現這很有用。 如果您使用的是maven3和tomcat7,以下方法適用於我。我並不知道tomcat7中應用程序管理器端點的更改。

Environment - Apache Maven 3.0.4,apache-tomcat-7.0.34,Windows 7 

Tomcat7改變其部署終點從http://tomcatserver:8080/manager/htmlhttp://tomcatserver:8080/manager/text

所以我的pom.xml將

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <configuration> 
      <url>http://tomcatserver:8080/manager/text</url> 
      <server>tomcat</server> 
      <path>/myWebApp</path> 
     </configuration> 
    </plugin> 

在Tomcat中-users.xml中

<role rolename="manager-gui"/> 
    <role rolename="manager-script"/> 
    <role rolename="manager-jmx"/> 
    <role rolename="manager-status"/> 
    <role rolename="admin-gui"/> 
    <role rolename="admin-script"/> 

    <user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/> 

在行家的settings.xml

<server> 
    <id>tomcat</id> 
    <username>root</username> 
    <password>root</password> 
</server> 

在context.xml中,雖然這是可選的,並且與tomcat7的maven3部署無關,有時可能會發生jar鎖定,所以更安全一些。

<Context antiJARLocking="true" antiResourceLocking="true"> 

現在發出

mvn tomcat:deploy 

記住Maven的部署之前啓動tomcat。

如果部署成功,您的應用程序將可在

http://tomcatserver:8080/myWebApp 
0

對於Tomcat 7你使用了錯誤的目標。試試tomcat7:deploy和tomcat7:取而代之的是取消部署。