input发送a.jax_JAX-RS 2.0:自定义内容处理

input发送a.jax

我试图想到一个更好的标题,但未能拿出一个! 请多多包涵……。

JAX-RS 2.0规范允许我们无缝地将JAXB对象编组到HTTP请求/响应主体,或从HTTP请求/响应主体中解组。 简而言之,我们可以使用域对象,而不必担心基于JAX-RS的解决方案中的低级XML序列化。

在开始之前, 这是指向下面引用的源代码的GitHub链接 –并不多,但以防万一,您需要窥视一下。

开发环境

  • Java EE 7(当然!)
  • JDK 8-不要激动,到目前为止还没有lambda!
  • Netbeans 8
  • Wildfly 8和GlassFish 4(是的,已经在两台服务器上都进行了测试)–它只是在Netbeans中切换服务器,花费15/30秒左右的时间。 所以这没什么大不了的!

首先,让我们看一下用例,这些用例演示了JAX-RS实现的开箱即用功能,以便通过网络处理带有JAXB注释的实体/域对象。

这是一个简单的示例,其中我们尝试“ 获取 ”域对象的表示,该对象恰好是用JAXB 注释的 POJO

2

当我们触发GET HTTP请求时,将获得以下JSON响应 。 这里使用的工具是邮递员

1个

同样,也可以通过简单地切换“ 接受”来观察XML响应。   HTTP标头到application / xml

3

让我们看一个案例,其中我们尝试通过网络“ 发布 ”域对象(XML / JSON)的表示形式

4

通过邮递员启动POST请求

6

服务器日志中STDOUT的代码段(按照上面的代码)

5

因此,我们刚刚看到,在JAXRS中,装饰有JAXB批注的域对象可以在网上交换XML和JSON格式而不会费劲!

考虑一个场景,在该场景中我们已经可以使用丰富的域Java对象。 但

  • 我们无权访问源代码
  • 我们无法真正使用JAXB批注对其进行批注
  • 域实体是不兼容JAXB的旧式POJO。

在这里,我们可以利用JAX-RS 2.0中提供的自定义内容处理功能MessageBodyWriterMessageBodyReader接口为我们提供了一种插入自定义编组/解组机制的方式,并允许JAX-RS运行时处理其余工作!

  • 下面的示例主要处理XML和JSON格式,但是请注意,这些接口可用于“任何”数据格式-互联网上到处都是数百种,每天都有新的接口出现!

让我们看一些代码。 。 。 。 再次…..

首先,为了模拟get场景,让我们仅从JAXRS资源方法返回Legacy POJO的实例它与JAXB不兼容 /我们没有通过JAXB批注装饰它的源代码

7

您如何看待这将通过网络串行化为XML ? 我们对javax.ws.rs.ext.MessageBodyWriter接口的定制实现将有助于实现这一点。

该接口有3个抽象方法,一个需要实现。 该片段展示了writeTo()方法,其中包含大量的转换逻辑。

  • 您可以在Java EE 7 javadocs中进一步了解它

8

因此,和往常一样,我们要求邮递员为我们验证事情,这就是他不得不说的。 不用麻烦! 想象一下,如果直接从持久性(DB)存储中获取旧版POJO表示形式-您需要做的就是返回它,因为在线表示形式已得到处理

9

现在,相反的情况–从我们的客户端层发布 XML表示,并观察它被序列化到Legacy POJO实例中。 想坚持下去吗? 当然,继续并解雇实体管理器! (不要忘记@ javax.ejb.Stateless !)

101

您如何看待客户端发送XML有效负载通过网络转换为我们的Leagcy POJO 实例 ? 我们对javax.ws.rs.ext.MessageBodyReader接口的自定义实现将使这种情况发生。

13

呼叫Postman,通过网络发布 XML表示,然后查看结果

11

只是为了确保我们的旧版POJO确实已序列化– 通过服务器STDOUT日志进行了确认

12

因此,借助一个简单的示例,我们看到了在基于JAXRS的实现中定义自定义转换/类包装逻辑来处理自定义域对象/实体/ POJO的过程是多么容易。

签字之前的几点观察

  • GlassFish4 中的 JAXRS实现不支持通过装饰有JAXB的POJO进行无缝的JSON序列化/反序列化Wildfly 8的魅力十足 ! 荣誉!
  • 在将marshall / unmarshall流程委派给实体拦截器(读取器/写入器实现)后,对JSON的无缝支持不再起作用(在GlassFish和Wildfly中均是如此)。 不知道为什么。 我猜想JAXRS实现是直接从/分别向输入/输出流中提取有效负载,并且以某种方式没有中间层可用于内容协商

我希望我不会在这里错过任何把戏! 如果您这样认为,请足够热情地通知我!

好吧,仅此而已! 编码愉快…………!

翻译自: https://www.javacodegeeks.com/2014/04/jax-rs-2-0-custom-content-handling.html

input发送a.jax

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php mysql ppt,7PHP访问数据库分析.ppt

7PHP访问数据库分析习题 4. 下列哪个函数可以将结果集的指针移动到指定的位置 A. mysql_fetch_rowB. mysql_fetch_assoc C. mysql_queryD. mysql_data_seek 5. PHP连接mysql数据库的连接函数mysql_connect的第三个参数是:() A. 主机名B. 数据库密码C. 数据库用户名 …

工业以太网交换机出现温度过高如何处理?

工业交换机由于其良好的通信性能、超强的抗磁抗干扰性被应用在工业环境下。我们都知道工业环境是很恶劣的,加上工业交换机要连续不间断的工作,很容易造成工业交换机过热的现象!因此除了产品本身采用宽温度范围的元器件之外,我们更…

【渝粤教育】国家开放大学2018年春季 0556-21T广告摄影 参考试题

编号:0556 座位号 2017~2018学年度第二学期期末考试 广告摄影 试题 2018年6月 一、名词解释(每小题5分,共15分) 广告摄影: 曝光的互易律: 景别: 广告摄影试题第1页…

【渝粤教育】国家开放大学2018年春季 0675-22T中级财务会计(2) 参考试题

科目编号:0675 座位号 2017-2018学年度第二学期期末考试 中级财务会计(2) 试题 2018年 7 月 一、单选题(本大题共10小题,每小题3分,共计30分) (★请考生务必将答案填入到下面对应序…

如何将Java应用程序置于Apache HTTP服务器之后

在过去 ,将Apache HTTP服务器置于Java应用程序服务器或Java应用程序本身的前面是很常见的事情。 其背后的原因非常简单,可以以简单的方式添加缓存,还可以添加负载平衡,并且在此静态内容之上可以由Apache HTTP提供服务&#xff0c…

【渝粤教育】国家开放大学2018年春季 0703-22T经济学基础 参考试题

科目编号:0703 座位号 □□ 2017-2018学年度第二学期期末考试 经济学基础 试题 2018年7月 一、单项选择题:(每题4分,共40分) 一个经济体系必须回答的基本问题( ) A.生产什么&#…

工业以太网交换机的概念及其主要功能介绍

随着互联网技术的快速发展,工业以太网在工业的通信领域也在大展身手,工业以太网交换机作为重要的通信设备,在整个工业通信行业中有着极其重要的功能!下面,飞畅科技的小编就来为大家详细介绍一下什么是工业以太网交换机…

php 设置统一处理错误,统一的PHP错误处理理论

我建议去“异常”的方式。当有用户错误时抛出异常,您可以将php错误转换为异常,如下所示:function exception_error_handler($errno, $errstr, $errfile, $errline ) {throw new ErrorException($errstr, 0, $errno, $errfile, $errline);}set…

【渝粤教育】国家开放大学2018年春季 3950T金融基础 参考试题

试卷代号:3950 金融基础 试题 2018年7月 一、单项选择题(每小题2分,共20分,每小题有一项答案正确,请将正确答案的序号填写在括号内) 1.商业银行不用或少用自有资金,代客户办理收付或…

mockito接口_什么是Mockito Extra接口?

mockito接口如果要编写轻量级的JUnit测试, Mockito是我最喜欢的小帮手。 如有必要,可以通过模拟轻松地替换被测单元的“实际”依赖关系,这非常有用。 特别是在处理框架API的边界时,这种依赖关系否则设置起来非常昂贵。 但是有时候…

【渝粤教育】国家开放大学2018年春季 7392-22FMatlab语言及其应用 参考试题

科目编号:7392 2017-2018学年度第二学期期末考试 Matlab语言及其应用 试题(式样) 命题人:冯立 审核人: 部门领导: 考核方式 开 卷,考核时间 60 分钟,本题共 2 套,第 2 …

Zigbee 电动智能窗帘系统 解决方案

随着社会经济结构、家庭人口结构以及信息技术的发展变化以及人类对家居环境的安全性、舒适性、效率性要求的提高,造成家居智能化的需求大大增加, 同时越来越多的家庭要求智能家居产品不仅要满足一些基本的需求,更要求智能家居系统在功能扩展、…

工业以太网交换机的专业术语

工业以太网交换机与民用以太网交换机相比,工业以太网交换机产品在设计上以及在元器件的选用上,产品的强度和适用性方面都能满足工业现场的需要。接下来,我们就来为大家详细介绍下工业以太网交换机的一些常用专业术语,一起来看看吧…

【渝粤教育】国家开放大学2018年春季 8039-22T二手车评估 参考试题

科目编号:8039 座位号 2017-2018学年度第二学期期末考试 二手车评估 试题 2018年 7 月 一、不定项选择题(本大题共6小题,每小题5分,共计30分) (★请考生务必将答案填入到下面对应序号的答题框中★&#xf…

oracle utf8 varchar,Oracle中字符集的类型决定varchar2的字符长度

1.前几天往数据库表里面插入数据的报了一个这样的错误如下:SQL> insert into student values(中华人民共和,60);insert into student values(中华人民共和,60)*第 1 行出现错误:ORA-12899: 列 "SYSTEM"."STUDENT"."NAME" 的值太大…

为什么BAT这些大企业都喜欢用LoRa技术?

相信对于很多朋友来说LORA通讯协议还是比较陌生的,因为LORA这种通讯技术是在2016年开始才正式传入中国的。现在阿里、Google、腾讯等互联网巨头都已经加入了LORA联盟,最有意思的是亚马逊,它在今年西雅图举行的硬件大会上,发布了一…

如何在Java中使用QRGen创建QRCode

在我以前的一篇文章中 ,我们了解了如何使用Zxing Java库创建QRCode及其等效的SVG。 Zxing库不再得到积极维护,为此,Zxing库周围有一个名为QRGen的包装,该包装提供了更高级别的API和用于生成QR代码的构建器语法。 在本文中&#x…

【渝粤教育】国家开放大学2018年春季 8625-22T老年心理健康 参考试题

编号:8625 座位号 2017~2018学年度第二学期期末考试 老年心理健康试题 2018年7月 一、名词解释(本大题共6小题,每题5分,共30分) 期待性焦虑 忧郁: 急躁: 暴躁: 心理…

蓝牙的原理,蓝牙耳机怎么连接手机

蓝牙技术是一种无线数据和语音通信的通信协议,它是一种基于低成本的近距离的无线连接,为固定和移动设备监理通信环境的一种近距离无线连接技术。 蓝牙的作用 蓝牙使今天的一些便携式移动设备和计算机是被能够不需要线路就能相互链接,并且可以…

关于工业交换机技术的简单总结

工业交换机,应用于工业控制领域的以太网交换机设备,使用的是透明而统专一的TCP/IP协议,本身与商属业网络在数据链路层、网络层、协议层等方面并无本质区别,接下来飞畅科技的小编来为大家详细介绍下工业交换机技术,感兴…