使用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);
   }

09-30 22:58