Tomcat
在 PUT 上測試 Spring Boot API 會導致 HTTP 405(不允許的方法)
我創建了一個部署到 Tomcat 伺服器的 API。在開發過程中,我會從 Eclipse 啟動應用程序並使用 Postman 測試端點。在 Eclipse 中,應用程序執行良好。我會看到我的機器人(使用 Selenium WebDriver 創建)啟動、點擊目標頁面、點擊腳本元素並完成該過程。
我修改了 POM 以建構我使用 Tomcat Manager App 頁面手動部署的 WAR 文件。據我所知,已部署的 WAR 執行良好。我決定使用 Postman 執行相同的測試;顯然將“localhost”更改為實際的IP地址和埠。不幸的是,我收到了這個 HTTP 405 錯誤,我不知道為什麼。我認為需要在 Tomcat 中配置一些東西,但我不知道具體需要做什麼。
我根據這個配置了Tomcat,仍然沒有運氣: http: //www.codereye.com/2010/12/configure-tomcat-to-accept-http-put.html
預設情況下,Tomcat 未啟用 HTTP PUT 命令。
我必須通過修改 web.xml 和 tomcat-users.xml 文件來配置 Tomcat。
對 web.xml 文件的更改
- 需要添加
readonly=false
參數<init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param>
- 需要為角色添加安全約束
<security-constraint> <web-resource-collection> <web-resource-name>Demo App</web-resource-name> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> </web-resource-collection> <auth-constraint> <role-name>#####</role-name> </auth-constraint> </security-constraint>
對 tomcat-users.xml 文件的更改
- 需要添加使用者和角色以匹配添加的安全約束
<user name="#####" password="#####" roles="#####" />