解决 Maven 使用Tomcat 部署报错 Tomcat return http status error: 405, Reason Phrase: Method Not Allowed:

时间:2022-07-25
本文章向大家介绍解决 Maven 使用Tomcat 部署报错 Tomcat return http status error: 405, Reason Phrase: Method Not Allowed:,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

背景

maven 3 使用Tomcat 8 使用命令,进行部署

 mvn tomcat7:deploy

出现如下报错: Tomcat return http status error: 405, Reason Phrase: Method Not Allowed:

HTTP 405解读

HTTP Error 405 Method not allowed

此HTTP协议定义在web浏览器上的特定URL资源(由客户端发起)上要执行action动作的方法。有下面几种方法:

  • options 要求得到一个HTTP方法列表,所请求URL上的东西可以对这些HTTP方法做出响应。。
  • get 要求得到所请求URL上的资源或文件,例如网页或者图片等。
  • head 只要求得到GET返回结果的首部部分。所有这有点像GET,但是相应中没有体。它能提供所请求URL的有关信息,但 是不会真正返回实际的那个东西。
  • post 要求服务器接受附加到请求的体信息,并提供所请求URL上的一个东西,这像GET的一个扩展,也就是说,随请求还发送了额外的信息。向网页提交数据,比如提交信息,或者向远程数据库增加记录等。
  • put 指出要把所包含的信息(体)放在请求的URL上
  • delete 指出删除所请求URL上的一个资源或文件
  • trace 要求请求消息回送,这样客户能看到另一端上接受了什么,以便测试或排错。
  • connect 要求连接以便建立隧道。

修复405错误

一般而言,405报错都是由于POST请求。

所有的405错误,都可以追踪到web 服务器的配置以及调用web服务器配置的配置,以及网页安全的控制等。

经检查,最后只需将pom.xml中的配置改一下,增改为

  <plugin>

            <groupId>org.apache.tomcat.maven</groupId>

            <artifactId>tomcat7-maven-plugin</artifactId>

            <version>2.2</version>

            <configuration>

                <url>http://localhost:8080/manager/text</url>

                <username>tomcat</username>

                <password>tomcat</password>

            </configuration>

        </plugin>

tomcat 服务器的对应tomcat-users.xml中改为

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

赋予 连接者 权限的roles,即 管理员GUI/管理员,管理员脚本等。 再次运行 mvn tomcat7 :deploy ,部署成功。如要重新部署,则可使用命令 mvn clean tomcat7:undeploy tomcat7:deploy

此时,打开tomcat webapps 目录 发现自动生成了项目工程以及其war包

至此,结束。