2013-04-28 2 views
0

J'utilise la méthode TaskOptions.payload (String) pour écrire un petit objet JSON dans une file d'attente de tâches POST. Mais comment l'obtenir pour lire dans le servlet lors de l'exécution de la file d'attente de tâches?Comment obtenir une charge utile TaskQueue?

Répondre

1

Voici ce que je l'ai fait à la fin. Ran ce code dans le 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; 
} 
2

Si vous utilisez servlets que vous devez mettre en œuvre une méthode doPost(..), où vous obtenez le corps de la requête et l'analyser comme JSON: HttpServletRequest get JSON POST data

Questions connexes