如何阻止Apache httpd拒绝HTTP PATCH请求?

gil*_*ilz 2 java tomcat apache2 bitnami

我正在使用Bitnami Tomcat堆栈上的Java servlet 实现JSON补丁规范.在servlet端,我通过重写HttpServlet.service()方法来处理HTTP PATCH方法,如下所示:

@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    if (request.getMethod().equals("PATCH"))
        doPatch(request, response);
    else
        super.service(request, response);
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试向Tomcat发送HTTP PATCH请求时,Apache httpd使用501"Method Not Implemented"拒绝它.

有没有办法让Apache httpd停止这样做?

bra*_*zen 5

AJP13尚不支持HTTP PATCH(AJPv13a).如果要使用PATCH,请使用HTTP连接Apache Web Server和Tomcat.

  • AJP协议支持PATCH.这在[此错误报告](https://issues.apache.org/bugzilla/show_bug.cgi?id=56884)中有记录.但是,mod_proxy可能不支持PATCH over AJP.此外,似乎[这已在Apache2 2.4.3中修复](https://issues.apache.org/bugzilla/show_bug.cgi?id=54416).另一个选项可能是mod_jk. (2认同)