通过servlet发送字节,获取“此URL不支持HTTP方法GET”

时间:2010-06-23 15:45:15

标签: java http servlets

我有以下代码......

  @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
        final int idValue = Integer.parseInt(req.getParameter("id"));
        final ProjectRunEntity projectRunEntity = projectDataService.findProjectRunEntity(idValue);
        try {
            final byte[] documentAsBytes = wordFileGenerationService.getDocumentAsBytes(projectRunEntity);
            resp.setContentType("application/msword");
            resp.setHeader("Content-Disposition", "inline; filename=example.doc;");
            final ServletOutputStream out = resp.getOutputStream();
            out.write(documentAsBytes);
            out.flush();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

它获取一些恰好是word文档的字节并将它们写入servlet响应。出于某种原因,当我点击网址时,我在浏览器中收到以下消息...

  

“HTTP状态405 - HTTP方法GET是   此网址不支持“

我在Tomcat 6上。有什么想法吗?我知道调试器中没有任何内容,字节被写入响应的输出流。

4 个答案:

答案 0 :(得分:3)

我猜错误是由默认doGet实施引发的(当您致电super.doGet(req, resp)时)。

答案 1 :(得分:2)

该状态在super.doGet(...)中设置。请删除该电话。

答案 2 :(得分:2)

do {Http-Method}方法意味着被覆盖。他们的默认实现是“不支持”。无需调用super.do {http-Method}

答案 3 :(得分:1)

我只需删除此行......

super.doGet(req, resp);