tomcat-maven-plugin 403错误

当我使用mvn tomcat:部署tomcat-maven-plugin时出现了一个403错误:

无法执行目标org.codehaus.mojo:项目中的tomcat-maven-plugin:1.0:deploy(default-cli)my-webapp:无法调用Tomcatpipe理器:服务器返回的HTTP响应代码:403代表URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war=

我认为这是因为空战参数。 但是为什么它是空的?

在pom.xml中有:

 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <warFile>target\my-webapp.war</warFile> <server>myserver</server> <url>http://localhost:8080/manager/text</url> <path>/dms</path> </configuration> </plugin> 

/manager应用程序默认由用户名/密码保护。 如果你inputhttp:// localhost:8080 / manager,你也会被要求提供安全证书。 首先在Tomcat中创build/启用用户:取消或几次失败尝试后,Tomcat将在错误屏幕上提供帮助。 然后在tomcat-maven-plugin使用这些凭据,如下所述:

将一个插件configuration块添加到您的pom.xml中:

 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>myserver</server> </configuration> </plugin> 

将相应的服务器块添加到您的settings.xml中:

 <server> <id>myserver</id> <username>myusername</username> <password>mypassword</password> </server> 

你应该使用/ text:

HTTP://本地主机:8080 /经理/文

并添加到用户angular色pipe理器脚本

你使用的是tomcat 7,你应该像下面这样将你的插件configuration放在pom.xml中:

 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <url>http://localhost:8080/manager/html</url> <server>tomcat</server> <path>/finance</path> </configuration> </plugin> 

我已经尝试了版本configuration,就像上面的例子,但它不适合我。 在settings.xml中,shoud具有服务器的configuration,与pom.xml中的值匹配

 <settings> <servers> <server> <id>tomcat</id> <username>admin</username> <password>admin</password> </server> </servers> </settings> 

因此,mvn tomcat:部署或mvn tomcat:重新部署(如果您已经部署了应用程序),或者mvn tomcat:运行(与tomcatclosures)应该工作。

你只需要通过添加“/ html”来改变url,所以它会像这样http:// localhost:8080 / manager / html和宾果游戏的作品希望帮助

对于Tomcat7,在tomcat-users.xml中,您还需要rolename manager-script

 <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="s3cret" roles="manager-script,manager-gui"/> 

并在项目的POM.xml中

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

和maven的settings.xml:

 <servers> <server> <id>myserver</id> <username>tomcat</username> <password>s3cret</password> </server> </servers> 

有几个步骤必须确保完成。 这可能是一个真正的黑洞。

如果你使用的是org.codehaus.mojo的tomcat-maven-plugin,你必须使用这个configuration:

 <configuration> <url>http://localhost:8080/manager/text</url> <warFile>your_war_filename.war</warFile> <server>server_name_on_settingsxml</server> </configuration> 

请确保您在maven settings.xml中定义了“server_name_on_settingsxml”服务器凭证。 使用mvn tomcat:deploy(你必须使用这个'tomcat'前缀),这是读取部署上述configuration时唯一的方法。

但是,如果您使用的是来自org.apache.tomcat.maven的tomcat7-maven-plugin,则必须使用mvn tomcat7:deploy。 'tomcat7'前缀将从插件读取configuration:

  <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> 

我使用的是tomcat:deploy,我在pom.xml中定义了tomcat7-maven-plugin。 所以,maven部署从来没有阅读我的configuration标签…

如果确保正确定义了用户名和密码,并且在部署时使用了正确的插件,则它将起作用。

如果您尝试使用codehouse tomcat插件1.1版在Tomcat 7服务器上进行部署,则可能会出现403错误。 版本1.1还不支持Tomcat 7。

如果你使用的是Tomcat 7,你应该使用Cargo。

如果你正在使用Tomcat 7:

  1. 在pom.xml中更改您的configuration以使用插件的Tomcat 7版本

     <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <url>http://127.0.0.1:8080/manager/html</url> <server>TomcatServer</server> <path>/your_context</path> <username>some_user_name</username> <password>some_password</password> </configuration> </plugin> 

注意和值 – 它们与Tomcat 6不同。

  1. 不要忘记在脚本中将“tomcat:deploy”更改为“tomcat7:deploy”,或者Eclipse中的“External Tools Configurations”启动器。
  2. 将服务器configuration添加到settings.xml,通常位于.m2文件夹下
 <server> <id>TomcatServer</id> <username>some_user_name</username> <password>some_password</password> </server> 
  1. 如果您需要其他选项,如部署位于非标准文件夹中的WAR文件,请访问: Tomcat 7 Maven Plugin

我发现我不得不使用下面的string而不是“html”:

 http://localhost:8080/manager/text 

这也是可能的:

 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>myserver</server> <username>admin</username> <password>admin</password> </configuration> </plugin> 

如果您使用Tomcat 7,则需要参考tomcat插件中的url http:// localhost:8080 / manager / html 。

http://mojo.codehaus.org/tomcat-maven-plugin/examples/deployment-tomcat7.html

 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.2-SNAPSHOT</version> <configuration> <url>http://localhost:8080/manager/html</url> </configuration> </plugin> 

如果您使用的是版本7,则存在一个问题:缺省情况下,未访问/ manager /文本资源。

您必须使用Mananger脚本创build一个用户,正如文档中所述

 It would be quite unsafe to ship Tomcat with default settings that allowed anyone on the Internet to execute the Manager application on your server. Therefore, the Manager application is shipped with the requirement that anyone who attempts to use it must authenticate themselves, using a username and password that have the role manager-script associated with them. Further, there is no username in the default users file ($CATALINA_BASE/conf/tomcat-users.xml) that is assigned this role. Therefore, access to the Manager application is completely disabled by default. To enable access to the Manager web application, you must either create a new username/password combination and associate the role name manager-script with it, or add the manager-script role to some existing username/password combination. 

希望能帮助到你 :)

我曾经得到相同的错误,你只需要确保tomcat-users.xml文件包含用户(pipe理员在我的情况下)与angular色(经理,经理贵,pipe理员,经理脚本)。

我有tomcat 7,在Ubuntu的Maven 3。

你只需要在configuration文件夹的tomcat-users.xml中添加manager-script和managerangular色到你的tomcat用户。 在Tomcat 7中,你必须为不同的pipe理者GUI访问指定不同的angular色。 在文本界面的最后,你必须使用pipe理员脚本angular色。

可能是你应该在〜/ .m2 / settings.xml中检查你的configuration文件,这个文件必须和下面的struct一样:

 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <usePluginRegistry/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/> </settings> 

之后,您应该确保您的服务器conf对于您的项目是正确的,例如:

  <servers> <server> <id>mytomcat</id> <username>test</username> <password>test</password> </server> </servers> 

以后运行mvn tomcat:deploy。 请记住,你也可以运行tomcat:deploy -X查看debbug。

这个解决scheme是为“Apache”Tomcat7插件:因为它已经提到,你需要添加“/文本”到url的结尾

 <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <path>/deployPath</path> <url>http://localhost:8080/manager/text</url> <server>TomcatServer</server> </configuration> 

configuration你在.m2文件夹中的“settings.xml”

 <servers> <server> <id>TomcatServer</id> <username>script-admin</username> <password>password</password> </server> </servers> 

由于您使用的是Tomcat 7,最重要的是您应该为“manager-script”angular色创build一个不同的用户,正如文档中提到的那样!

 <role rolename="manager-script"/> <user username="tomcat" password="password" roles="manager-script"/> 

如果您在使用用户名和密码时遇到问题,请不要担心,在Tomcat目录下有一个名为tomcat-user.xml的文件,在那里查看名称和密码属性,并在提示询问用户名和密码时使用。

如果仍然无法打开apache主页做一件事,在tomcat目录中有另一个名为server.xml文件,并将端口8080更改为此

如果你在插件m2eclipse中使用Eclipse,并且在尝试这些解决scheme后仍然有这个错误,那可能是因为这个插件没有包含pipe理器。 你应该单独下载Tomcat并configurationEclipse来使用它(检查这个链接: tomcat-maven-plugin:服务器返回的HTTP响应代码:403 )

从tomcat6传递到tomcat7回顾:

  1. 在tomcat-user.xml中添加angular色
  2. 将/ text或/ html添加到您的url
  3. 更改插件版本

     <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> 
  4. 使用tomcat7:deploy更改选项tomcat:deploy

我花了三天时间在服务器上返回HTTP响应代码:400,同时尝试将Web应用程序部署到与Netbeans捆绑在一起的Tomcat Server 8.0上。 当我使用mvn tomcat7:deploy通过命令行进行mvn tomcat7:deploy ,一切工作都很完美,但是通过Netbeans IDE没有成功。 我已经在POM.xml中设置了tomcat maven插件

 <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <url>http://localhost:8080/manager/text</url> <server>tomcat</server> </configuration> </plugin> 

加上Maven的.m2 / conf / settings.xml中的服务器logging,

 <settings> <servers> <server> <id>tomcat</id> <username>admin</username> <password>admin</password> </server> </servers> </settings> 

甚至在tomcat-users.xml中适当的tomcat用户

 <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="manager-script,manager-gui"/> 

但仍然没有成功。 根本原因是我们公司和Netbeans设置中使用的代理服务器。 在Netbeans中,转到工具 – >选项,然后在常规选项卡上,使用手动代理设置而不是系统代理设置 (即使系统代理设置工作)。 它帮助我,现在我能够直接从Netbeans部署在Tomcat 8上的Web应用程序。 当您只使用本地主机服务器时,您也可以设置无代理服务器。 我的麻烦的根本原因是在默认的网页浏览器,这是select系统代理设置的来源代理设置不好。

我也得到了403错误,但只有当我通过Apache 2连接。当我使用端口8080和直接部署到tomcat它的作品。 所以: 尝试添加端口8080的URL

我仍然试图找出为什么它不能通过Apache。 我正在使用ProxyPass / ajp://localhost:8009/

 <Location "/manager" > Order allow,deny Allow from 62.245.147.202 Satisfy Any </Location>