【发布时间】:2020-11-10 07:41:50
【问题描述】:
我正在尝试使用正文创建 REST 服务。当我尝试添加一个额外的参数(以读取 POST 正文)时,不会调用其余请求。
第一个 JAVA 类:
@Path("{module}/{messageKey}")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response status(final @Context HttpServletRequest request, @PathParam("module") final String module, @PathParam("messageKey") final String messageKey, final GetMessageDAO dao) {
String messageText = "";
System.out.println(messageKey);
CacheControl cacheControl = new CacheControl();
cacheControl.setNoCache(true);
return Response.ok(String.valueOf(messageText)).cacheControl(cacheControl).build();
}
第二个 Java 类:
public class GetMessageDAO {
@JsonProperty("args")
private String args;
public String getArgs() {
return args;
}
public void setArgs(String args) {
this.args = args;
}
}
JS 调用:
new Ajax.Request(
'/ecmws/resources/message/gp/transactionManager.confirm.affected_calc_req',
{
method: 'post',
parameter: {args: "abc"},
data: {args: "abc"},
contentType: 'application/json;charset=UTF-8',
charset: 'UTF-8',
async: false});
当我从第一个 Java 类中删除最后一个参数时,它工作正常,但我还需要读取 POST 正文,因此问题。
我在类路径中有 jersey-core、jersey-json、jersey-client、jersey-server、jackson-mapper。
你能建议我缺少什么吗?
【问题讨论】:
-
你的班级是如何注册的?你有@ApplicationPath ResourceConfig 类吗?