【发布时间】:2019-01-04 08:38:24
【问题描述】:
我们有一个基于 Spring 的大型项目,其 API 默认返回 json 数据。 一旦我们在 maven pom 中添加 azure-storage-blob 库依赖项,所有控制器都将返回 xml,而不是默认返回 json。 我删除了依赖,然后返回到 json。
似乎与杰克逊数据格式有关,因为当我排除它时:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>10.3.0</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</exclusion>
</exclusions>
</dependency>
回到 json.... 但 azure 不再工作了 :)
你有什么想法可以解决这个问题吗?
谢谢,祝你有美好的一天
编辑 2018-01-07 : Jackson是老朋友了,我加了spring配置强制json作为fallback格式,不理想:
@Override public void configureContentNegotiation(ContentNegotiationConfigurer conf) {
conf.favorPathExtension(true)
.favorParameter(false)
.ignoreAcceptHeader(true)
.useJaf(false)
.defaultContentType(MediaType.APPLICATION_JSON);
}
由于一些副作用即将到来,这部分地起作用
【问题讨论】:
-
你好。我遇到了同样的问题,您是否找到了更好的解决方案来避免副作用?谢谢!
-
嗨,我还没有寻找备用方案,目前我们对此解决方案没有任何问题 :)
-
感谢您的快速回复。我不确定我是否遵循...您是如何解决此问题的?我的意思是,您的项目中有 Azure,对吗?你是如何让它使用 JSON 而不是 XML 的?我一直无法找到正确的配置,甚至尝试为 ObjectMapper 创建一个@Bean,但不知何故我仍然看到 XML。谢谢
标签: java spring azure azure-blob-storage jackson-dataformat-xml