【发布时间】:2013-07-24 08:20:33
【问题描述】:
我有一个在 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 日志正确反映了客户端请求是 GET 还是 POST,具体取决于我发送的风格。
看来这确实应该是问题所在,但没有运气
还有其他地方可以看吗?
【问题讨论】:
-
HTTPD 配置与问题的相关性如何?您的 Tomcat 是否以带有 mod_jk 的 HTTPD 为前端?您是否暗示当您的 Tomcat 不是以 HTTPD 为前端而是直接连接时它可以正常工作?如果是这样,那么问题是由 HTTPD 引起的吗?在那种情况下,这不是程序员的问题,而只是服务器管理员的问题。然后您的问题应迁移到 serverfault.com。
标签: java apache http tomcat servlets