解决 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包
这里写图片描述

至此,结束。

发布了404 篇原创文章 · 获赞 198 · 访问量 78万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览