我可以反序列化JAX-RS响应吗?

时间:2017-05-05 21:23:23

标签: java jax-rs

我编写了一个类似于:

的JAX-RS API
<ListBox
        x:Name="lstBox"
        Background="CadetBlue"
        FontFamily="Consolas"
        FontSize="14"
        FontWeight="DemiBold"
        ItemContainerStyle="{DynamicResource _ListBoxItemStyle}"
        ItemTemplate="{StaticResource genreTemplate}"
        MouseDoubleClick="lstBox_MouseDoubleClick" />

@POST @Path("findallbyname") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.TEXT_PLAIN) Response findAllByName(String payload); Response的位置。 javax.ws.rs.core.Response的{​​{1}}属性为entity,因此此响应只返回字符串列表的JSON序列化。

在一个单独的应用中,我正在调用API(使用http-remoting库found here):

Response

然而,我收到此错误:

List<String>

好吧,这看起来像是一个简单的对象serde问题 - 它看起来像Service service = JaxRsClient.builder().build(Service.class, "<user-agent>", "<uri>"); Response response = service.findAllByName("some string"); 是一个抽象类型,它不能在客户端反序列化(请求通过并返回状态200,根据服务器请求日志)。

我的问题是,由于我的原始API是用抽象的Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of javax.ws.rs.core.Response: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information at [Source: java.io.BufferedReader@2ef14fe; line: 1, column: 1] 对象类型进行响应的,所以在反序列化我在客户端获得的响应对象时,我是否运气不好?我可以更改API,但我想问一下,看看是否有更好的方法可以在客户端解决这个反序列化问题。

0 个答案:

没有答案