我正在使用TaskOptions.payload(String)方法将一个小JSON对象写入POST任务队列。
但是,如何在执行任务队列时读取servlet中的内容?
答案 0 :(得分:2)
如果您使用的是servlet而不是必须实现doPost(..)
方法,那么您将获得请求正文并将其解析为JSON:HttpServletRequest get JSON POST data
答案 1 :(得分: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;
}