我正在使用 TaskOptions.payload(String ) 方法将一个小的 JSON 对象写入 POST 任务队列。
但是在执行任务队列时,我如何让它在 servlet 中读取呢?
我正在使用 TaskOptions.payload(String ) 方法将一个小的 JSON 对象写入 POST 任务队列。
但是在执行任务队列时,我如何让它在 servlet 中读取呢?
如果您使用 servlet,则必须实现一个doPost(..)
方法,在该方法中获取请求正文并将其解析为 JSON:HttpServletRequest get JSON POST data
这就是我最后所做的。在 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;
}