当前位置: 首页 > 知识库问答 >
问题:

基于Accept标头值指定Jersey资源处理程序

广献
2023-03-14

我希望有不同的函数根据Accept头来处理对特定资源的请求。特别是,如果存在Accept标头,则应调用返回应用程序/json内容类型的函数,否则,如果不存在Accept标头,则应调用返回文本/普通内容的不同函数。有没有一种方法可以通过Jersey注释实现这一点?

顺便说一下,这是在dropwizard json web服务的上下文中实现的。

共有1个答案

洪雨石
2023-03-14

我也有同样的问题(这就是我来这里的原因)。关于@Produces的提示解决了问题:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/Test")
@Produces(MediaType.TEXT_HTML)
public class TestResource {
   @GET
   @Path("/test")
   @Produces(MediaType.APPLICATION_JSON)
   public String json() {
      return "{\"hello\": \"world\"}";
   }

   @GET
   @Path("/test")
   @Produces(MediaType.APPLICATION_XML)
   public String xml() {
      return "<hello>World</hello>";
   }

   @GET
   @Path("/test")
   public String html() {
      return "<html>Hello world</html>";
   }
}

调用“/测试/测试”服务现在会根据“接受”标题给出不同的结果。

 类似资料:
  • 我正在使用带有thymeleaf的Spring Boot,我所有的资源都在Spring应用程序之外的路径上,例如。在dev env上应该使用url解析路径,并且live env继续路径。 为什么资源处理程序不处理这些类型的资源,但是如果我处理没有问题?我错过了什么吗? 编辑:如果是并且位置是url也没有被处理

  • 当 Vue Loader 编译单文件组件中的 <template> 块时,它也会将所有遇到的资源 URL 转换为 webpack 模块请求。 例如,下面的模板代码片段: <img src="../image.png"> 将会被编译成为: createElement('img', { attrs: { src: require('../image.png') // 现在这是一个模块的请

  • 我正在使用maven-resource-plugin 2.6 vith maven 3.0.5(也尝试了3.0.4)。 我有不同的处决: 当我把下面的方块 在我的内部 我需要把它放进去 这是一个问题吗?因为当我启动构建时,我的pom.xml没有错误。

  • CustomObjectResource-rest服务返回一个简单的POJO,其中包含文本、长日期和本地日期时间字段。 这是我的邮差。第-1部分接受=json状态码为200,JSON解析失败。实际上,返回的对象是XML。当我选择以XML显示结果时, 现在,我使用Accept:application/xml 第2部分接受xml 它没有返回任何内容:404。 我和杰克逊一起使用SpringBoot。

  • 默认情况下,vue-loader使用css-loader 和Vue模板编译器自动处理你的样式和模板文件。 在这个编译过程中,所有的资源URL,例如 img src="...", background:url(...)和CSS@import被解析为模块依赖。 例如,url(./ image.png)将被翻译为require('./ image.png')和 <img src="../image.pn

  • 图像资源引入有三种方式 Template 中通过 image src 指定图像资源 直接指定图像的远程资源地址 资源为本地路径,若配置 publicPath,则 publicPath 与 webpack loader 中配置的 name 进行拼接 Style 中通过 src 指定图像资源 Style 中通过 class 指定图像资源 Wxss文件中只能用 CDN 地址或 Base64, 针对第二、