2016-08-15 6 views
0

J'utilise localhost: 8080/_ah/api/explorer google explorer: Je continue à obtenirjava blobstore et le point final Google SPI AppEngine

{ 
"error": { 
    "message": "com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException: Can not construct instance of javax.servlet.http.HttpServletResponse, problem: abstract types can only be instantiated with additional type information\n at [Source: N/A; line: -1, column: -1]", 
    "code": 400, 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "badRequest", 
    "message": "com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException: Can not construct instance of javax.servlet.http.HttpServletResponse, problem: abstract types can only be instantiated with additional type information\n at [Source: N/A; line: -1, column: -1]" 
    } 
    ] 
} 

mon code Google SPI est:

@ApiMethod(name = "findBillImage", httpMethod = ApiMethod.HttpMethod.GET) 
public void findImage(HttpServletResponse httpServletResponse , @Named("blobkey") String blobKeyValue) throws IOException { 
    BlobKey blobKey = new BlobKey(blobKeyValue); 
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();   
    blobstoreService.serve(blobKey, httpServletResponse);  
} 

à tout moment Je tente d'écrire quelque chose à la réponse HttpServletResponse je reçois cette erreur .. im perdu sur pourquoi je ne peux pas écrire à httpServletResponse

Répondre

0

Soooo .. l'an swer est vraiment 'design' dans mon cas.

Depuis que je suis implémenter "REST" avec google app engine ... Je ne devrais pas modifier le HttpResponse pour retourner une "image". Donc "servir" une image de retour à la réponse Http n'est pas idéal. j'exposer l'image directement avec l'URL de stockage pour les clients .:

https://storage.cloud.google.com/myapp.appspot.com/20160603_154924.jpg 

ne peux pas dire « 100% » comme cette réponse, mais d'après ce que je lis, je crois que cela est correct.