栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何让JAX-RS返回Java 8 LocalDateTime属性作为JavaScript样式的日期字符串?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何让JAX-RS返回Java 8 LocalDateTime属性作为JavaScript样式的日期字符串?

注意:请参见下面的更新

我以前从未使用

LocalDateTime
过,所以我决定进行一些测试。这是我的发现:

  • Jersy 2.13和此提供程序(无需额外配置即可解决)
        <dependency>        <groupId>org.glassfish.jersey.media</groupId>        <artifactId>jersey-media-moxy</artifactId>        <version>${jersey.version}</version>    </dependency>
  • 带有此提供程序的Jersey 2.13(具有JAXB注释支持-依赖jackson-module-jaxb-annotations),带有自定义适配器
        <dependency>        <groupId>org.glassfish.jersey.media</groupId>        <artifactId>jersey-media-json-jackson</artifactId>        <version>${jersey.version}</version>    </dependency>    public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {        @Override        public LocalDateTime unmarshal(String s) throws Exception { return LocalDateTime.parse(s);        }        @Override        public String marshal(LocalDateTime dateTime) throws Exception { return dateTime.toString();        }       }    // Getter for model class    @XmlJavaTypeAdapter(LocalDateTimeAdapter.class)    public LocalDateTime getDateTime() {        return dateTime;    }
  • 带有此提供程序的Resteasy 3.0.9(也支持JAXB注释-依赖jackson-module-jaxb-annotations),带有自定义适配器(请参见上文)
        <dependency>        <groupId>org.jboss.resteasy</groupId>        <artifactId>resteasy-jackson2-provider</artifactId>        <version>${resteasy.version}</version>    </dependency>
  • Resteasy和Jersey都具有这种依赖性(没有自定义配置也无法工作,与前两个相同-使用适配器)
        <dependency>        <groupId>com.fasterxml.jackson.jaxrs</groupId>        <artifactId>jackson-jaxrs-json-provider</artifactId>        <version>2.4.0</version>    </dependency>

我们需要确保注册

JacksonJaxbJsonProvider


因此,我想似乎任何使用Jackson的提供程序都不会在没有一些自定义配置的情况下给您想要的结果,无论是通过适配器(如上所示)还是通过其他自定义配置。该

jersey-media-moxy
供应商不使用杰克逊。


更新

在大多数情况下,以上信息不正确。

  • 莫西 并不 默认工作。它的工作原理进行序列化通过简单地调用

    toString()
    ,这可能会或可能不是你想要的是,它将无法正常工作时, -serializing。如果您使用的是MOXy,直到它支持Java8时间,您将需要使用XMLAdapter

  • Jackson 您将需要配置其Java8时间支持。泽西岛和RESTEasy都是这种情况。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508877.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号