【问题标题】:Spring controller, Jackson dataformat, and Azure blob storage v10Spring 控制器、Jackson 数据格式和 Azure blob 存储 v10
【发布时间】: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


【解决方案1】:

看起来您可能必须使用 com.fasterxml.jackson.core 每个 Azure-storage-java documentation 它用于将数据解析为 Json。我还建议检查此 documentation 关于 Jackson 核心的信息,这也可能有所帮助。

【讨论】:

  • 感谢您的指点,我已经看过那些,我用最后的代码更改编辑了我的问题
猜你喜欢
  • 2014-05-13
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-05-17
  • 2016-06-16
  • 2020-03-10
  • 1970-01-01
  • 2014-07-15
相关资源
最近更新 更多