我正在构建一个简单的Web应用程序,并尝试使用servlet和RESTful Web服务将数据插入数据库,但收到此错误HTTP 405(方法不允许(。你能给我一些建议吗?
此代码来自 Web 服务。
@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);
您正在向服务器发送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);