使用jersey序列化注释始终失败,并出现未知错误。
最小的示例是:
泽西资源
@TestAnno( id = "TestID" )
@Path( "/test" )
public class TestResource
{
@GET
@Produces( MediaType.APPLICATION_JSON )
public TestAnno list() throws JsonGenerationException, JsonMappingException, IOException
{
final TestAnno ta = getClass().getAnnotation( TestAnno.class );
return ta;
}
}
注解
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.TYPE )
public @interface TestAnno
{
@JsonProperty( "id" )
String id();
}
通话总是返回
HTTP ERROR: 500
Problem accessing /schema. Reason:
Server Error
调试日志为空,没有异常或任何其他有关该错误的信息。球衣失败的意义何在?
最佳答案
可能您没有带有此类的Serializer。考虑编写Dto类并将所有信息从注释映射到它。然后只需返回即可。
就像是:
public Response list() throws JsonGenerationException, JsonMappingException, IOException
{
final TestAnno ta = getClass().getAnnotation( TestAnno.class );
MyDto dto = buildDto(ta);
return Response.ok(dto);
}