JAX-RS MessageBodyReader

2024-01-04

我正在从提供者那里了解 MessageBodyReader 方法的工作原理。我看到该方法返回一个对象,但我不确定如何从服务访问该对象。我可以获得有关如何从 reader 类返回对象的解释吗?这将帮助我为所有 DTO 应用读取规则。提前致谢!

Service:

    @POST
    @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
    @Path("/CreateAccount")
    @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
    public Response createAccount(@Context HttpServletRequest req) {
        
        String a = "Reader success? ";//Would to see that string here!
        return Response.ok().build();
    }

提供商:

@Provider
public class readerClass implements MessageBodyReader<Object>
{

@Override
public boolean isReadable(Class<?> paramClass, Type paramType,
        Annotation[] paramArrayOfAnnotation, MediaType paramMediaType) {
    // TODO Auto-generated method stub
    return true;
}

@Override
public Object readFrom(Class<Object> paramClass, Type paramType,
        Annotation[] paramArrayOfAnnotation, MediaType paramMediaType,
        MultivaluedMap<String, String> paramMultivaluedMap,
        InputStream paramInputStream) throws IOException,
        WebApplicationException {
    // TODO Auto-generated method stub
    
    return "Successfully read from a providers reader method";
}

}

您误解了MessageBodyReader的用途,它的用途如下:

支持将流转换为流的提供商的合同 Java 类型。要添加 MessageBodyReader 实现,请注释 带有@Provider的实现类。消息正文阅读器 实现可以用 Consumes 注释来限制媒体 被认为适合的类型

例子 : 如果您有一个用例,您需要自定义格式而不是 xml/json ,您想提供自己的 UnMarshaller,您可以使用 messagebody reader

    @Provider
    @Consumes("customformat")
    public class CustomUnmarshaller implements MessageBodyReader {

        @Override
        public boolean isReadable(Class aClass, Type type, Annotation[] annotations, MediaType mediaType) {
            return true;
        }


        @Override
        public Object readFrom(Class aClass, Type type, Annotation[] annotations, MediaType mediaType, MultivaluedMap multivaluedMap, InputStream inputStream) throws IOException, WebApplicationException {
            Object result = null;
            try {
                result = unmarshall(inputStream, aClass); // un marshall custom format to java object here
            } catch (Exception e) {
                e.printStackTrace();
            }

            return result;


}
}

在网络服务中你可以像这样使用它。

    @POST    
    @Path("/CreateAccount")
    @Consumes("custom format")
    public Response createAccount(@Context HttpServletRequest req,Account acc) {

        saveAccount(acc); // here acc object is returned from your custom unmarshaller 
        return Response.ok().build();
    }

更多信息自定义编组/解编组示例 https://github.com/chandu0101/jaxrs-samples/tree/master/custom-marshalling , 泽西岛实体提供商教程 https://jersey.java.net/documentation/latest/message-body-workers.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAX-RS MessageBodyReader 的相关文章

  • Spring控制器是线程安全的吗

    我遇到了这个控制器示例 想知道它是否是线程安全的 我特别想知道 gson 实例变量 import org springframework stereotype Controller import org springframework we
  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • Java 创建浮雕(红/蓝图像)

    我正在编写一个 Java 游戏引擎 http victoryengine org http victoryengine org 并且我一直在尝试生成具有深度的 3D 图像 您可以使用那些红色 蓝色眼镜看到 我正在使用 Java2D 进行图形
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 场景生成器删除 fxml 文件中的导入

    我使用场景构建器 Gluon Scene Builder JavaFX Scene Builder 8 1 1 来创建应用程序的 UI 并使用 Eclipse 开发 JavaFX 现在 每次我在场景生成器中保存某些内容时 它都会从 fxml
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • 如何为 Jackson 编写一个包罗万象的(反)序列化器

    当您提前知道类型时 编写自定义序列化器非常容易 例如 MyType一个人可以写一个MyTypeSerializer extends StdSerializer
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • 在 Selenium WebDriver 上如何从 Span 标签获取文本

    在 Selenium Webdriver 上 如何从 span 标记检索文本并打印 我需要提取文本UPS Overnight Free HTML代码如下 div id customSelect 3 class select wrapper
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 阻止 OSX 变音符号为所有用户禁用 Java 中的 KeyBindings?

    注 我知道这个问题 https stackoverflow com questions 40335285 java keybinds stop working after holding down a key用户必须输入终端命令才能解决此问
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr

随机推荐

  • Android 10秒后隐藏布局?

    我在单击按钮时显示了一个布局 我想在 10 秒后隐藏该布局 protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState mVolHa
  • 在 Visual Studio 2008 中调试 Web 服务时如何避免超时错误

    我正在使用控制台应用程序调用 Web 服务方法 并使用 vs2008 中的调试器单步调试代码 有时我需要停下来思考一些事情 比较一下价值观 不是说几个小时 只是几分钟 此时web服务超时了 如何避免这种情况 让web服务根本不超时 谢谢 好
  • 如何排除和过滤pandas中的几列?

    我知道我们可以使用 pandas dataframe 过滤器仅选择几列 但是我们也可以仅排除某些列吗 这是 MWE import numpy as np import pandas as pd df pd DataFrame id 1 2
  • 如何在 MKMapView 上绘制当前位置到所需位置之间的路线?

    我想显示我当前位置和所需位置之间的路线 我能够做到这一点 但是当源点和目的地点到目前为止时 它不会显示路线并给出内存警告 您能建议任何示例代码或任何方法来做到这一点吗 以下代码用于绘制当前位置到所需位置之间的路径 void viewDidL
  • jqGrid dataUrl下拉列表不刷新

    我是 Web 开发新手 正在开发我的第一个 ASP NET MVC 3 应用程序 我正在使用 jqGrid 并注意到刷新页面不会刷新下拉列表中的值 直到我在另一个选项卡中打开同一页面 然后刷新第一个选项卡将获取更改的值 我有一个控制器操作
  • For-each 与迭代器。哪个将是更好的选择

    考虑以下场景 List
  • 将新记录添加到私人 Outlook 通讯组列表

    我需要从文件或数据库中读取包含姓名和电子邮件的记录 并将它们添加到现有的 Oulook 通讯组列表 来自私人联系人 而不是来自 GAL 我刚刚看到使用 LINQ to DASL 从 OL 读取邮件和约会的示例 但我不知道如何列出 dist
  • Bootstrap 表,空单元格中的破折号/连字符

    我正在使用Wenzhixin的bootstrap table模块 http bootstrap table wenzhixin net cn http bootstrap table wenzhixin net cn 当我使用 JSON 加
  • 在express.js中设置cookie出现j:前缀

    我正在尝试使用 res cookie 设置 cookie 如下所示 res cookie userId req user id set cookie here console log req user id returned correct
  • 将哈希锚定到页面底部

    转到页面 底部 的通用 HTML 锚标记是什么 我知道标签 会自动将用户带到页面顶部 但我不太确定页面底部 没有一个 不过 你可以用类似的东西来模拟它 a a 然后链接到 bottom 你可能会发现这个帖子 https stackoverf
  • 如何将 int 转换为一系列字符

    我正在尝试将 8 位微控制器 PIC 上的 C 整数分解为其 ASCII 等效字符 例如 将 982 转换为 9 8 2 到目前为止我想出的一切似乎都相当暴力 这是我现在基本上正在做的主要想法 if 10 lt n n lt 100 iso
  • Celery (Django) 速率限制

    我正在使用 Celery 来处理多个数据挖掘任务 其中一项任务连接到远程服务 该服务最多允许 10 个同时连接per user 或者换句话说 它CAN全球连接数超过 10 个 但CANNOT每个单独作业超过 10 个连接 I THINK 令
  • 权限被拒绝使用 Excel 12.0 库和 VB6 打开 Excel 文件

    我以前曾在 VB6 应用程序中多次使用 Excel 但从未遇到过如此奇怪的问题 试图完成一些非常简单的事情 我正在尝试打开 Excel xls 或 xlsx 文件并读取值 正如您可能看到的那样 当我尝试打开该文件时 收到错误 70 权限被拒
  • 将 CSV 文件内容与 filecmp 进行比较并忽略元数据

    import filecmp comparison filecmp dircmp dir local dir server comparison report full closure 我想将本地计算机上保存的所有 CSV 文件与服务器上保
  • 引入输出语句时MiniZinc找不到解决方案

    我有一个用 minizinc 编写的简单模型 我使用 gecode 首先将其编译为 flat zinc 来解决它 作为输入 模型采用一些常量 数组和矩阵 二维数组的形式 模型的输出是另一个必须满足一些约束的二维矩阵 目标优化是最小化 目标
  • 我们可以将规范引用中未明确引用的内容应用到 C++ 标准吗?

    在 C 11 标准中 最接近的草案是 N3337 http www open std org jtc1 sc22 wg21 docs papers 2012 n3337 pdf 部分1 2 规范性引用文件 says 以下参考文件是必不可少的
  • 使用 CMake 将编译器标志附加到文件

    如何使用 cmake 将编译器标志 我想附加它 而不是覆盖其他标志 添加到单个翻译单元 我尝试过 set source files properties MyFile cpp PROPERTIES CMAKE CXX FLAGS msse4
  • Android Studio 没有显示任何错误?

    我不知道发生了什么事但是当我复制粘贴代码或写一些东西时 没有显示错误 See the picture below in which i copied a code but no imports yet But Android studio
  • python:使用多处理共享巨大的字典

    我正在使用多重处理处理存储在字典中的大量数据 基本上我所做的就是加载一些存储在字典中的签名 从中构建一个共享的 dict 对象 获取 Manager dict 返回的 代理 对象 并将此代理作为参数传递给具有在多处理中执行 只是为了澄清 s
  • JAX-RS MessageBodyReader

    我正在从提供者那里了解 MessageBodyReader 方法的工作原理 我看到该方法返回一个对象 但我不确定如何从服务访问该对象 我可以获得有关如何从 reader 类返回对象的解释吗 这将帮助我为所有 DTO 应用读取规则 提前致谢