Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到媒体类型=文本/普通的Jersey MessageBodyWriter_Java_Rest_Glassfish_Jersey_Jersey 2.0 - Fatal编程技术网

Java 未找到媒体类型=文本/普通的Jersey MessageBodyWriter

Java 未找到媒体类型=文本/普通的Jersey MessageBodyWriter,java,rest,glassfish,jersey,jersey-2.0,Java,Rest,Glassfish,Jersey,Jersey 2.0,我正在尝试遵循Jersey文档,以便在发生错误时启用非200响应() 我的代码如下所示: @POST @Produces(MediaType.TEXT_PLAIN) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public ResponseBuilder getData(@FormParam("one") String one,@FormParam("two") String two,@FormParam("three") String th

我正在尝试遵循Jersey文档,以便在发生错误时启用非200响应()

我的代码如下所示:

@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][Severy][org.glassfish.jersey.message.internal.WriterInterceptorExecutor][tid:(U ThreadID=27)ThreadName=http-listener-1(2)][timeMillis:1422807182157][levelValue:1000][[ 找不到媒体类型为text/plain、类型为class org.glassfish.jersey.message.internal.OutboundJaxrsResponse$Builder、genericType=class javax.ws.rs.core.Response$ResponseBuilder的MessageBodyWriter。]]


问题在于方法的返回类型。它必须是
Response
而不是
ResponseBuilder

将代码更改为以下内容,它应该可以工作:

@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();
}

万一没用。我返回响应。如果类或方法上没有
@products
注释,则可能会出现此错误。