Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MrBean模块在反序列化时是否仍然自动支持动态实现简单接口?_Java_Json_Jackson_Jersey - Fatal编程技术网

Java MrBean模块在反序列化时是否仍然自动支持动态实现简单接口?

Java MrBean模块在反序列化时是否仍然自动支持动态实现简单接口?,java,json,jackson,jersey,Java,Json,Jackson,Jersey,当从Jersey1客户机转换到Jersey2客户机(使用jackson 2.8.6)时,我现在在尝试读取接口时遇到一个映射异常 WebTarget resource = helper.resource(path); if(schedule != null) resource = resource.queryParam("schedule", schedule); return resource.request().get(new GenericType<MyInterface>(){

当从Jersey1客户机转换到Jersey2客户机(使用jackson 2.8.6)时,我现在在尝试读取接口时遇到一个映射异常

WebTarget resource = helper.resource(path);
if(schedule != null) resource = resource.queryParam("schedule", schedule);
return resource.request().get(new GenericType<MyInterface>(){});

Caused by: javax.ws.rs.client.ResponseProcessingException: com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.mycompany.MyInterface: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
接口的动态实例化现在消失了吗?如果没有,需要执行哪些额外的配置步骤才能使其正常工作

(我们的依赖关系有点混乱,所以我想我用的是Jersey 1.6和Jackson 1.9.8)

编辑:
作为我们之前所依赖的行为的另一个例子,看看哪里有一个没有注释的简单界面

我想我是在流了很多血、汗水和眼泪后发现的

我发现我配置的ObjectMapper实际上不是正在使用的那个

球衣1

clientConfig.getSingletons().add(new JacksonJsonProvider(objectMapper));
Client client = new Client(urlConnectionClientHandler, clientConfig);
JAXRS2(什么不起作用)

我发现创建实际使用的ObjectMapper的组件是一个JacksonJaxbJsonProvider,向ClientConfig注册它不起作用,但在客户端注册它起作用

JAXRS2(什么起作用了)

objectMapper.registerModule(new MrBeanModule());
clientConfig.getSingletons().add(new JacksonJsonProvider(objectMapper));
Client client = new Client(urlConnectionClientHandler, clientConfig);
 clientConfig.register(new JacksonJsonProvider(objectMapper));
 Client client = ClientBuilder.newClient(cc);
    Client client = ClientBuilder.newClient(cc);
    client.register(new JacksonJaxbJsonProvider(objectMapper, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS));