2015-02-01 31 views
7

düz medya türü = metin/için bulunamadı (https://jersey.java.net/documentation/latest/representations.html#d0e3586)Jersey MessageBodyWriter bir hata oluştu eğer olmayan bir 200 yanıtı etkinleştirmek için Jersey dokümanlar izlemeye çalışıyorum

Benim kod şuna benzer:

@POST 
@Produces(MediaType.TEXT_PLAIN) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public ResponseBuilder getData(@FormParam("one") String one,@FormParam("two") String two,@FormParam("three") String three) { 
    if(one.isEmpty() || two.isEmpty() || three.isEmpty()) { 
     logger.error("Missing params for getData"); 
     throw new WebApplicationException(501); 
    } 
    return Response.ok(); 
} 
} 

[2015-02-01T16: 13: 02.157 + 0000] [glassfish 4.1] [AĞIR] [] [org.glassfish.jersey.message.internal.WriterInterceptorExecutor

ne yazık ki aşağıdaki hata verir Bu ] [tid: _ThreadID = 27 _ThreadName = http-listener-1 (2)] [timeMillis: 1422807182157] [levelValue: 1000] [[ MessageBodyWriter ortam türü bulunamadı = text/plain, type = class org.glassfish.jersey.message.internal.OutboundJaxrsResponse $ Builder , genericType = sınıf javax.ws.rs.core.Response $ ResponseBuilder.]]

cevap

6

sorun yöntemin dönüş türüdür. ResponseBuilder yerine Response olmalıdır.

aşağıdaki için kodunuzu değiştirin

ve çalışması gerekir:

@POST 
@Produces(MediaType.TEXT_PLAIN) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public Response getData(@FormParam("one") String one,@FormParam("two") String two,@FormParam("three") String three) { 
    if(one.isEmpty() || two.isEmpty() || three.isEmpty()) { 
     logger.error("Missing params for getData"); 
     throw new WebApplicationException(501); 
    } 
    return Response.ok(); 
} 
+0

Ah Şu anda çok aptalca hissediyorum! –

+0

Eğer yardımcı olmazsa. Yanıt verdim. –