当我使用mvn tomcat:tomcat-maven-plugin的部署时出现403错误:
无法在项目my-webapp上执行目标org.codehaus.mojo:tomcat-maven-plugin:1.0:deploy(default-cli):无法调用Tomcat管理器:服务器返回HTTP响应代码:403 for 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>
21 回答
这也是可能的:
如果您使用Tomcat 7,则需要引用tomcat插件中的url http://localhost:8080/manager/html .
http://mojo.codehaus.org/tomcat-maven-plugin/examples/deployment-tomcat7.html
/manager
应用程序默认由用户名/密码保护 . 如果输入http://localhost:8080/manager,则还会要求您提供安全凭证 . 首先在Tomcat中创建/启用用户:取消或几次尝试失败后,Tomcat将在错误屏幕上提供帮助 . 然后在tomcat-maven-plugin
中使用这些凭据,如here所述:你应该使用/ text:
HTTP://本地主机:8080 /经理/文
并添加到用户角色管理器脚本
您使用的是tomcat 7,您应该将插件配置保留在pom.xml中,如下所示:
我已尝试使用版本配置,如上例所示,但它对我不起作用 . 在settings.xml中,shoud具有服务器的配置,与pom.xml中的值匹配
所以,mvn tomcat:deploy或mvn tomcat:redeploy(如果你已经部署了app),或者mvn tomcat:run(用tomcat down)应该可以工作 .
你只需要通过添加"/html"来更改网址,这样它就像这个http://localhost:8080/manager/html和bingo它的工作希望有帮助
对于Tomcat7,在tomcat-users.xml中,您还需要rolename manager-script :
在项目的POM.xml中
和maven的settings.xml:
必须确保完成一些步骤 . 这可能是一个真正的黑洞 .
如果您正在使用org.codehaus.mojo中的tomcat-maven-plugin,则必须使用以下配置:
请确保您在maven settings.xml上定义了“server_name_on_settingsxml”服务器凭据 . 使用mvn tomcat:deploy(你必须使用这个'tomcat'前缀),这是读取部署上述配置的唯一方法 .
但是,如果您使用org.apache.tomcat.maven中的tomcat7-maven-plugin,则必须使用mvn tomcat7:deploy . 'tomcat7'前缀将从插件中读取配置:
我正在使用tomcat:deploy,我在pom.xml上定义了tomcat7-maven-plugin . 所以,maven部署从未读过我的配置标签......
如果您确保正确定义了用户名和密码,并且在部署时使用了正确的插件,那么它将起作用 .
如果您尝试使用codehouse tomcat插件版本1.1在Tomcat 7服务器上进行部署,则可能会出现403错误 . 版本1.1尚不支持Tomcat 7 .
如果您使用的是Tomcat 7,则应使用Cargo .
如果您使用的是Tomcat 7:
注意和值 - 它们与Tomcat 6的不同 .
不要忘记在脚本中将"tomcat:deploy"更改为"tomcat7:deploy",或在Eclipse中将外部工具配置启动器更改为"tomcat:deploy" .
将服务器配置添加到settings.xml,通常位于.m2文件夹下
<ID> TomcatServer </ ID>
<用户名> some_user_name </用户名>
<密码> some_password </密码>
</服务器>
我发现我必须使用以下字符串而不是“html”:
如果您使用的是版本7,则有一个问题:默认情况下不启用对/ manager / text资源的访问 .
您必须使用角色mananger-script创建一个用户,如documentation中所述
希望能帮助到你 :)
我曾经得到同样的错误,你只需要确保tomcat-users.xml文件包含用户(在我的情况下是admin),角色为(manager,manager-gui,admin,manager-script) .
我在ubuntu上有tomcat 7,maven 3 .
您只需要在config文件夹的tomcat-users.xml中将manager-script和manager角色添加到tomcat用户 . 在Tomcat 7中,您必须为不同的角色指定不同的角色管理器GUI访问,在这种情况下转到文本 . 在文本界面的最后,您必须使用经理脚本角色 .
也许你应该在〜/ .m2 / settings.xml中检查你的配置文件,这个文件必须是跟随struct:
之后,您应该确保您的服务器conf对于您的项目是正确的,例如:
以后运行mvn tomcat:deploy . 还记得你也可以运行tomcat:deploy -X来查看debbug .
此解决方案适用于“Apache”Tomcat7插件:如前所述,您需要在网址末尾添加“/ text”
配置位于.m2文件夹内的“settings.xml”
由于您使用的是Tomcat 7,因此最重要的是您应该为“manager-script”角色创建一个不同的用户,正如文档中提到的那样!
如果您遇到有关用户名和密码的问题,请不要担心,tomcat目录中有一个名为
tomcat-user.xml
的文件,去那里查看名称和密码属性,并在提示询问用户名和密码时使用 .如果还是你无法打开apache主页做一件事,在tomcat目录下还有另一个名为
server.xml
的文件go并将端口8080改为此如果您使用带有插件m2eclipse的Eclipse,并且在尝试这些解决方案后仍然存在此错误,则可能是因为此插件未包含管理器 . 您应该单独下载Tomcat并配置Eclipse以使用它(请查看此链接:tomcat-maven-plugin: Server returned HTTP response code: 403)
从tomcat6传递到tomcat7回顾:
在tomcat-user.xml中添加角色
将/ text或/ html添加到您的网址
更改插件版本
在尝试将Web应用程序部署到与Netbeans捆绑在一起的Tomcat Server 8.0上时,我花了三天时间在_1700537上 . 当我在命令行上使用
mvn tomcat7:deploy
时,一切都很完美,但是通过Netbeans IDE没有成功 . 我在POM.xml中设置了tomcat maven插件加上Maven的.m2 / conf / settings.xml中的服务器记录,
在tomcat-users.xml中甚至适当的tomcat用户
但仍然没有成功 . 根本原因是我们公司使用的代理服务器和Netbeans设置 . In Netbeans, go to Tools -> Options and on General tab, use Manual Proxy Settings instead of System Proxy Settings (即使系统代理设置有效) . 它帮助了我,现在我可以直接从Netbeans在Tomcat 8上部署Web应用程序 . 您还可以在仅使用localhost服务器时设置“无代理” . 我的麻烦的根本原因是在默认Web浏览器中设置了错误的代理,这是选项系统代理设置的来源 .
我也得到了403错误,但只有当我通过Apache 2连接时 . 当我使用端口8080并直接部署到tomcat时它可以工作 . 所以: try to add port 8080 to the URL
我仍在试图弄清楚为什么它不能通过Apache工作 . 我正在使用
ProxyPass / ajp://localhost:8009/
和