南宁有多少家网站建设推广的公司,网络营销网站建设案例,poedit pro wordpress,兰州西固区公司网站建设input发送a.jax我试图想到一个更好的标题#xff0c;但未能拿出一个#xff01; 请多多包涵……。 JAX-RS 2.0规范允许我们无缝地将JAXB对象编组到HTTP请求/响应主体#xff0c;或从HTTP请求/响应主体中解组。 简而言之#xff0c;我们可以使用域对象#xff0c;而不必担… 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 当我们触发GET HTTP请求时将获得以下JSON响应 。 这里使用的工具是邮递员 同样也可以通过简单地切换“ 接受”来观察XML响应。 HTTP标头到application / xml 让我们看一个案例其中我们尝试通过网络“ 发布 ”域对象XML / JSON的表示形式 通过邮递员启动POST请求 服务器日志中STDOUT的代码段按照上面的代码 因此我们刚刚看到在JAXRS中装饰有JAXB批注的域对象可以在网上交换XML和JSON格式而不会费劲 考虑一个场景在该场景中我们已经可以使用丰富的域Java对象。 但 我们无权访问源代码 我们无法真正使用JAXB批注对其进行批注 域实体是不兼容JAXB的旧式POJO。 在这里我们可以利用JAX-RS 2.0中提供的自定义内容处理功能 。 MessageBodyWriter和MessageBodyReader接口为我们提供了一种插入自定义编组/解组机制的方式并允许JAX-RS运行时处理其余工作 下面的示例主要处理XML和JSON格式但是请注意这些接口可用于“任何”数据格式-互联网上到处都是数百种每天都有新的接口出现 让我们看一些代码。 。 。 。 再次….. 首先为了模拟get场景让我们仅从JAXRS资源方法返回Legacy POJO类的实例 。 它与JAXB不兼容 /我们没有通过JAXB批注装饰它的源代码 您如何看待这将通过网络串行化为XML 我们对javax.ws.rs.ext.MessageBodyWriter接口的定制实现将有助于实现这一点。 该接口有3个抽象方法一个需要实现。 该片段展示了writeTo方法其中包含大量的转换逻辑。 您可以在Java EE 7 javadocs中进一步了解它 因此和往常一样我们要求邮递员为我们验证事情这就是他不得不说的。 不用麻烦 想象一下如果直接从持久性DB存储中获取旧版POJO表示形式-您需要做的就是返回它因为在线表示形式已得到处理 现在相反的情况–从我们的客户端层发布 XML表示并观察它被序列化到Legacy POJO实例中。 想坚持下去吗 当然继续并解雇实体管理器 不要忘记 javax.ejb.Stateless 您如何看待客户端发送的XML有效负载通过网络转换为我们的Leagcy POJO 实例 我们对javax.ws.rs.ext.MessageBodyReader接口的自定义实现将使这种情况发生。 呼叫Postman通过网络发布 XML表示然后查看结果 只是为了确保我们的旧版POJO确实已序列化– 通过服务器STDOUT日志进行了确认 因此借助一个简单的示例我们看到了在基于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.htmlinput发送a.jax