2014-02-09 90 views
3

我想部署一个简单的JSF应用程序到本地机器上的Tomcat 8服务器上。当我运行mvn tomcat的:部署,我得到以下回馈:Maven不会部署到tomcat;给'405'错误

C:\_workspace\portfolio>mvn tomcat:deploy 
[INFO] Scanning for projects... 
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.italic:portfolio:war:0.0.1-SNAPSHOT 
[WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:tomcat-maven-plugin is missing. @ line 38, column 12 
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. 
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 
[WARNING] 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Portfolio 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] >>> tomcat-maven-plugin:1.1:deploy (default-cli) @ portfolio >>> 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ portfolio --- 
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! 
[INFO] Copying 1 resource 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ portfolio --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ portfolio --- 
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! 
[INFO] Copying 0 resource 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ portfolio --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ portfolio --- 
[INFO] 
[INFO] --- maven-war-plugin:2.2:war (default-war) @ portfolio --- 
[INFO] Packaging webapp 
[INFO] Assembling webapp [portfolio] in [C:\_workspace\portfolio\target\portfolio-0.0.1-SNAPSHOT] 
[INFO] Processing war project 
[INFO] Copying webapp resources [C:\_workspace\portfolio\src\main\webapp] 
[INFO] Webapp assembled in [184 msecs] 
[INFO] Building war: C:\_workspace\portfolio\target\portfolio-0.0.1-SNAPSHOT.war 
[INFO] WEB-INF\web.xml already added, skipping 
[INFO] 
[INFO] <<< tomcat-maven-plugin:1.1:deploy (default-cli) @ portfolio <<< 
[INFO] 
[INFO] --- tomcat-maven-plugin:1.1:deploy (default-cli) @ portfolio --- 
[INFO] Deploying war to http://localhost:8080/portfolio 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.499s 
[INFO] Finished at: Sat Feb 08 19:10:27 PST 2014 
[INFO] Final Memory: 21M/180M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project portfolio: Cannot invoke Tomcat manager: Server returne 
d HTTP response code: 405 for URL: http://localhost:8080/manager/text/deploy?path=%2Fportfolio&war= -> [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 
C:\_workspace\portfolio> 

显然Maven是查找服务器,但无法部署到它。我环顾了interwebs,发现这可能是由于maven试图使用“PUT”命令。然而,看着下面answer后,我在默认的servlet添加此代码,以我的tomcat的web.xml:

<init-param> 
    <param-name>readonly</param-name> 
    <param-value>false</param-value> 
</init-param> 

但是,它似乎没有任何效果。你有什么进一步的建议,我可以做些什么来得到这个工作?

我正在使用Maven 3.1.1和Tomcat 8.0.1。

+1

检查您的经理应用程序是否可用,并检查maven是否代表允许通过经理应用程序部署应用程序的用户使用该应用程序。 –

+1

事实证明,用户使用“manager-gui”权限的用户而不是“manager-script”。 – John

回答

1

事实证明,这是一个愚蠢的错误 - 我使用maven的用户拥有“manager-gui”权限而不是“manager-script”。解决这个问题解决了我的问题。