当前位置: 首页 > 面试题库 >

休息。泽西岛。如何以编程方式选择返回哪种类型:JSON或XML?

糜俊彦
2023-03-14
问题内容

我有两个问题:

1. 我可以创建 一个 类,用JAXB注释对其进行注释(用于XML支持),并在web.xml

<init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>

是否支持JSON(Jackson库)?还是我需要分别为JSON和XML创建两个类?

还是可能存在一些更优雅的方法来导致REST服务返回JSON和XML?

2. 如何以编程方式选择要返回的类型(JSON或XML)?

谢谢。


问题答案:

如果您的客户端希望使用URL的一部分来配置响应类型,则可以使用Servlet过滤器。

实现覆盖表示形式(媒体类型)的一种简单方法是使用URL查询参数:

/ resources / todo?format = json

Servlet过滤器解析URL查询参数,如果存在format = json,则替换或添加接受标头“ application / json”。



 类似资料:
  • 我正在泽西岛2中编写一个RESTful网络服务。我想支持响应的 Gzip 编码。按照这个答案,我在我的类中启用了。 在我的资源类中,我返回一个对象。 现在,当我点击这个api时,我得到一个响应,但响应头不包含头,而是包含 header。 请求: 响应: 响应中没有 标头,也没有任何标头。 我在上使用。 我还遗漏了其他配置吗?我如何获得这两个头并得到gzip压缩的响应,而不是接收分块的响应? 编辑:

  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 我一直在写RESTful Web服务。我使用的技术: 玻璃鱼3(基于Java6) JDK v7 Eclipse EE Kepler 泽西岛(Glassfish的一部分) 我为自定义MediaType创建了自定义POJO: 我的资源方法: 我的邮件正文作者: } 我的服务客户: 根路径: } 当我运行应用程序时,我从我的服务客户端获得以下输出: 我想使用自定义媒体类型和,以便更好地了解RESTful

  • 我有一个使用泽西岛 REST 组件的骡子流 经过 jersey 组件的对象类型为“org.mule.module.jersey.MuleResponseWriter” 如何处理此有效负载?在返回调用程序之前,我需要使用消息并对消息进行一些处理。 参考:http://www.mulesoft.org/documentation/display/current/Jersey模块参考 向其他流发送Jer

  • 问题内容: 我使用Jersey 1.11做了一个小型Rest Web服务。当我调用返回Json的url时,非英文字符的字符编码存在问题。Xml的相应网址(“ test.xml”在开始的xml-tag中使其成为utf-8。 如何使网址“ test.json”返回utf-8编码的响应? 这是该服务的代码: 这是服务使用的pojo: 问题答案: Jersey在默认情况下应始终生成utf-8,听起来像是您

  • 我现在正在尝试泽西,按照这个链接在netbean中设置了一个网络服务。我有我的实体类和REST类。它可以从javafx2客户端添加、编辑、删除、请求对象(在本例中是用户对象)。 然而,现在我尝试向我的网络服务添加一个新方法来进行一些简单的身份验证。首先,我在Users.java文件中添加了一个新的命名查询(Users.login): 之后,我将以下代码添加到我的UsersFacadeREST.ja