jibx_Jibx Jersey2集成
jibx
Jersey2为Jackson和JAXB提供内置支持。 但是默认情况下不支持Jibx。 要将Jibx与Jersey2结合使用,我们将XML输入作为流,并在接收到请求之后,使用Jibx对其进行解析。 但是实际上,有更好的方法可以使用MessageBodyReader和MessageBodyWriter API来实现相同目的。 这是可以实现的方式:
- 为使用Jibx的XML定义新的提供程序
- 向Jersey ResourceConfig注册
@Provider
public class JibxXmlProvider implements MessageBodyReader<Object>, MessageBodyWriter<Object> {public boolean isReadable(Class<?> type, Type genericType,Annotation[] annotations, MediaType mediaType) { if(!MediaType.APPLICATION_XML_TYPE.equals(mediaType)){return false;}try {BindingDirectory.getFactory( type );} catch (JiBXException e) {return false;}return true;}public boolean isWriteable(Class<?> type, Type genericType,Annotation[] annotations, MediaType mediaType ) { if(!MediaType.APPLICATION_XML_TYPE.equals(mediaType)){return false;}try {BindingDirectory.getFactory( type );} catch (JiBXException e) {return false;}return true;}public Object readFrom(Class<Object> type, Type genericType,Annotation[] annotations, MediaType mediaType,MultivaluedMap<String, String> httpHeaders, InputStream entityStream)throws IOException, WebApplicationException {try {IBindingFactory factory = BindingDirectory.getFactory( type );IUnmarshallingContext context = factory.createUnmarshallingContext();return context.unmarshalDocument( entityStream, null ); } catch (Exception e) {e.printStackTrace();}return null;}public void writeTo(Object obj, Class<?> type, Type genericType,Annotation[] annotations, MediaType mediaType,MultivaluedMap<String, Object> headers, OutputStream outputStream)throws IOException, WebApplicationException {try {IBindingFactory factory = BindingDirectory.getFactory( type );IMarshallingContext context = factory.createMarshallingContext();context.marshalDocument( obj, "UTF-8", null, outputStream );}catch ( Exception e ) {e.printStackTrace();} }public long getSize(Object obj, Class<?> type, Type genericType,Annotation[] annotations, MediaType mediaType ) {return -1;}}
定义了此类后,请按照以下步骤在Jersey上注册:
public class JerseyResourceInitializer extends ResourceConfig {public JerseyResourceInitializer() {packages(true, "com.adaequare.processing.service");// This line registers JibxXmlProvider as a new provider.register(JibxXmlProvider.class, MessageBodyReader.class, MessageBodyWriter.class);}}
完成此配置后,每当有新请求出现时,就会调用JibxXmlProvider的isReadable方法。 如果计算结果为true,则调用readFrom进行对象转换。
希望这可以帮助!
翻译自: https://www.javacodegeeks.com/2014/04/jibx-jersey2-integration.html
jibx
jibx_Jibx Jersey2集成相关推荐
- Jibx Jersey2集成
Jersey2为Jackson和JAXB提供内置支持. 但是默认情况下不支持Jibx. 要将Jibx与Jersey2结合使用,我们将XML输入作为流,并在接收到请求之后,使用Jibx对其进行解析. 但 ...
- Resteasy集成Spring
很简单,都用最新的版本就可以了.之前在网上找的教程都是用resteasy2.x和spring3集成,但是resteasy2.x和spring4是不行的,弄了很久.最后换成最新的resteasy3.x好 ...
- jersey spring_实施Jersey 2 Spring集成
jersey spring Jersey是Oracle提供的出色的Java JAX-RS规范参考实现. 去年,当我们开始为大容量网站构建RESTful后端Web服务时,我们选择使用JAX-RS API ...
- 实施Jersey 2 Spring集成
Jersey是Oracle提供的出色的Java JAX-RS规范参考实现. 去年,当我们开始为大容量网站构建RESTful后端Web服务时,我们选择使用JAX-RS API作为我们的REST框架和Sp ...
- Java Jersey2使用总结
原文 http://blog.segmentfault.com/lenbo_ma/1190000000495321 主题 Java 前言 在短信平台一期工作中,为便于移动平台的开发,使用了Java ...
- Springboot集成Jersey
Springboot集成Jersey Springboot支持Jersey1.x和Jersey2.x,我们这里只介绍Springboot对Jersey2.x的支持.springboot对jerse ...
- Nignx集成fastDFS后访问Nginx一直在加载中解决
问题描述: Nginx集成fastDFS后,访问Nginx一直在加载中,得不到页面.查看Nginx的错误日志: 可以看到是fastdfs.conf的配置错误,tracker的ip没有修改: fastd ...
- Hexo集成Algolia实现搜索功能
2年前搭建的hexo博客好久没有维护了,一看 hexo 以及先前使用 butterfly 主题已经更新好几个版本了,看介绍在速度性能上有了很大的提高,于是打算给 hexo 升个级,整理整理翻翻新.通过 ...
- 将TVM集成到PyTorch
将TVM集成到PyTorch 随着TVM不断展示出对深度学习执行效率的改进,很明显PyTorch将从直接利用编译器堆栈中受益.PyTorch的主要宗旨是提供无缝且强大的集成,而这不会妨碍用户.PyTo ...
最新文章
- 利用Kafka和Cassandra构建实时异常检测实验
- R语言进行缺失值填充(Filling in missing values):使用R原生方法、data.table、dplyr等方案
- C语言经典例83-求0—7所能组成的奇数个数
- 公布获奖名单推文文案_国学养正·趣味竞答获奖名单公布啦
- java svn安装地址_SVN的安装和配置
- python框架Flask学习笔记之get和post请求
- Android studio3.0开启抓包功能打包会使apk体积增大好几倍
- c#进阶(4)—— Redis 用于消息队列的存储
- tomcat端口修改后在Eclipse中启动无效问题解决
- VScode使用Git拉取代码到本地提示“在签出前,请清理存储工作树”
- TextView实现歌词同步《IT蓝豹》
- 搜索整理MyEclipse 快捷键
- K60学习笔记(二)——FTM多功能定时器模块
- MATLAB函数拟合使用
- Resource Hacker-资源替换工具
- echarts散列图示例
- 企业级网络架构—云平台高可用网络的修炼之道
- data_2 测试工作日志
- 第四十五讲:神州防火墙P2P流量控制配置
- wbe自动化测试----xpath定位与CSS定位