我有一个在 Apache tomcat 环境中扩展 HttpServlet 的 servlet。
它有一个 doPost 覆盖。
我正在尝试通过 setDoOutput = true 的 HttpURLConnection 进行访问。
客户端收到 405,但工作仍由 Tomcat 服务器执行,Tomcat 日志中的条目证明了这一点。
我确实在 httpd.conf 文件中找到了 Limit POST 并将其删除并重新启动了 Apache。
<Location /servlets>
<Limit POST>
Order deny,allow
Deny from all
Allow from localhost
Satisfy any
</Limit>
</Location>
相同的结果。
如果我将客户端更改为 GET,我将得到预期的 405,没有 doGet。
Apache 日志正确反射(reflect)了客户端请求是 GET 还是 POST,具体取决于我发送的类型。
看起来确实应该是问题所在,但运气不佳
还有什么地方可以看吗?
最佳答案
HttpURLConnection recieving a 405 but service is completed
正如错误明确指出的那样,您似乎正在使用您的 servlet 不支持的 HTTP 方法。正如您所提到的,您的 servlet 仅覆盖了 doPost,因此它只能处理 POST 请求。您似乎在发送请求时使用了其他一些 HTTP 方法。
关于java - HttpURLConnection 收到 405 但服务已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17841103/