0

我正在使用 TaskOptions.payload(String ) 方法将一个小的 JSON 对象写入 POST 任务队列。

但是在执行任务队列时,我如何让它在 servlet 中读取呢?

4

2 回答 2

2

如果您使用 servlet,则必须实现一个doPost(..)方法,在该方法中获取请求正文并将其解析为 JSON:HttpServletRequest get JSON POST data

于 2013-04-28T13:21:13.967 回答
1

这就是我最后所做的。在 doPost() 中运行此代码..

import org.codehaus.jackson.map.ObjectMapper;
import my.own.PayloadObject;

...

private static final ObjectMapper MAPPER = new ObjectMapper();

...

private PayloadObject getPayload(HttpServletRequest req) throws IOException
{
    InputStream inputStream = req.getInputStream();
    ByteArrayOutputStream byteArrayStream = new ByteArrayOutputStream();

    int length;
    byte[] buffer = new byte[1024];

    while ((length = inputStream.read(buffer)) >= 0)
        byteArrayStream.write(buffer, 0, length);

    if (byteArrayStream.size() > 0)
        return MAPPER.readValue(byteArrayStream.toByteArray(), PayloadObject.class);

    return null;
}
于 2013-04-29T04:47:35.817 回答