我有一个返回文件文本的web服务。如果出现问题,我想发回一个描述错误的json对象。我已经读过在@Produces注释中可能有多个MediaTypes,但是我无法使它工作(它只是第一个MediaType)。我可能需要一种方式来说“在这里生成文本,在这里生成json”。
@GET
//@Produces( {MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON} ) doesn't work either.
@Produces( MediaType.TEXT_PLAIN )
@Path( "/{filename}" )
public Response get( @PathParam( "filename" ) String filename ) {
String text;
try {
text = service.getFileText( service.getDirectory(), filename );
}
catch ( MyFileNotFoundException ex ) {
//Make a JSON object describing the error.
return ErrorResponder.sendErrorObject(ex.getMessage(), Response.Status.BAD_REQUEST);
}
//Send back plain text.
return Response.ok().entity( text ).build();
}
感谢。
ErrorResponder.sendErrorObject
目前如此返回;将尝试.type()函数:
return Response.status( status ).entity( errorObject ).build();
答案 0 :(得分:0)
如何将MediaType
用于多次返回类型。
import javax.ws.rs.core.MediaType;
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })
可以在这里查看其相关的question。
答案 1 :(得分:-1)
可以配置多个MIME类型,如下所示
@Produces({"text/plain", "application/json"})