我有简单的类,字段id
使用自定义反序列化器进行注释。
public class TestRequest implements Serializable {
@NotNull
@Pattern(regexp = "^[a-zA-Z0-9=+]*$")
@JsonDeserialize(using = StringDeserializer.class)
@JsonProperty
private String id;
//getter
//setter
}
和自定义反序列化程序类:
public class StringDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) {
Iterator<String> iterator = jsonParser.readValuesAs(String.class);
String id = iterator.next();
return id + "0000";
}
}
当我使用Jersey REST测试进行测试时,会调用deserilizer并按预期工作。但是使用websphere它没有调用。不知道为什么不叫它。 我正在使用jaxrs 1.1
答案 0 :(得分:0)
您可能需要将@Provider
注释添加到StringDeserializer
类,否则JAX-RS运行时将无法将该类识别为前导。
即使你的类扩展JsonDeserializer<String>
,它本身可能用@Provider
注释,但JAX-RS运行时不会扫描库中的注释,因为这会对性能产生负面影响。