Retrofit2 + RxJava + Jackson 默默失败

Retrofit2 + RxJava + Jackson fails silently

我正在研究 Java 8 REST 客户端设置,使用 Retrofit2 和 RxJava。当使用 GsonConverterFactory 时,一切都按预期工作。当切换到 JacksonConverterFactory 时,我根本看不到任何结果(但也不例外)。根据日志,REST调用本身是OK的。

GitHub 上的完整示例。

Retrofit 的 JacksonConverterFactory 默认情况下不会忽略未知属性(与例如 Feign 的 JacksonDecoder 相反)。

因此需要配置自定义 ObjectMapper 并将 FAIL_ON_UNKNOWN_PROPERTIES 功能设置为 false:

ObjectMapper jacksonMapper = new ObjectMapper().configure(FAIL_ON_UNKNOWN_PROPERTIES, false);

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("https://api.github.com/")
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .addConverterFactory(JacksonConverterFactory.create(jacksonMapper))
        .build();