泽西岛无法序列化注释?

时间:2014-07-10 12:46:12

标签: java rest serialization jersey jackson

使用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

调试日志为空,没有异常或有关错误的任何其他信息。球衣失败的重点是什么?

1 个答案:

答案 0 :(得分:1)

可能你没有具有这样一个类的Serializer。考虑编写Dto类并将注释中的所有信息映射到它。然后返回作为回复。 类似的东西:

  public Response list() throws JsonGenerationException, JsonMappingException, IOException
   {
      final TestAnno ta = getClass().getAnnotation( TestAnno.class );
      MyDto dto = buildDto(ta);

      return Response.ok(dto);
   }