POST方法错误HTTP 405(不允许方法)

时间:2017-05-17 08:35:31

标签: web-services rest jsp servlets post

我正在构建一个简单的Web应用程序,并尝试使用servlet和RESTful Web服务将数据插入到数据库中,我收到此错误HTTP 405(方法不允许)。你能给我一些建议吗?

此代码来自网络服务。

@POST
    @Path("/2")
    @Produces(MediaType.TEXT_PLAIN)
    public boolean addBooks(@FormParam("id") int id, @FormParam("isbn") 
String isbn, @FormParam("title") String title, @FormParam("author") String 
author, @FormParam("genre") String genre, @FormParam("availability") Boolean 
availability, @Context HttpServletResponse servletResponse)
            throws IOException {
      boolean result = DBManager.getInstance().addBook(id, isbn, title, author, genre, availability);
      return result;
    }

此代码来自servlet。

WebTarget target = client.target(getBaseURI());
Boolean ok = target.path("rest").path("hello/2").request()
                .accept(MediaType.TEXT_PLAIN).get(Boolean.class);

1 个答案:

答案 0 :(得分:0)

您正在向服务器发送GET请求而不是POST。

尝试:

MultivaluedMap<String, String> formParams = new MultivaluedHashMap();
formParams.put("title", ...);
formParams.put("isbn", ...);
...
Boolean ok = target.path("rest").
                    path("hello/2").
                    request().
                    accept(MediaType.TEXT_PLAIN).
                    post(Entity.form(formParams), Boolean.class);