如何在JAX-RS中处理/创建新的内容类型/ MediaType?

时间:2013-07-05 03:55:43

标签: rest jersey jax-rs resteasy

我正在研究Jersey和RESTEasy。 XML和JSON的媒体类型协商工作正常,我可以使用它们并生成它们。但是,我被要求制作并使用新内容类型的响应。例如,BSON,或自定义内容类型。我在网上搜索,但在其中找不到太多信息。无论如何,我仍然可以在JAX-RS中使用@Produces和@Consumes注释来获取新的内容类型吗?

提前致谢。

1 个答案:

答案 0 :(得分:18)

是的,您可以将@Produces@Consumes用于自定义媒体类型。为了在编组和解组内容时使用自定义媒体类型,您需要创建MessageBodyWriterMessageBodyReader实现来处理媒体类型。

以下是如何实施自定义媒体类型:

  1. 根据需要使用@Consumes({"application/mycustomtype})@Produces({"application/mycustomtype})注释您的资源方法。

  2. 实施自定义MessageBodyReaderMessageBodyWriter实施以支持您的自定义媒体类型。

  3. 使用MessageBodyReader@Provider

  4. 为您的@Consumes({"application/mycustomtype})添加注释
  5. 使用MessageBodyWriter
    @Provider添加注释 @Produces({"application/mycustomtype})