关于使用Xstream转换java对象时遇到的错误
开发中需要解析其他系统传的报文数据,需要转制定格式的内容.故需要在格式比较特殊的情况下需要自定义转换器.
xml格式如下, 是要对 <CrsrTg> 这个标签进行一定的调整转换
<TxnInfoTg><MoreFTg>N</MoreFTg><TotTxnMtchValTg>000001</TotTxnMtchValTg><TotTxnSndValTg>000001</TotTxnSndValTg><CrsrTg binaryEncoding="base64Binary">8PDw8PDw8PDw8Q==</CrsrTg>
</TxnInfoTg>
自定义的转换器如下
public class ISMBinaryTypeConvertor implements Converter {/* (non-Javadoc)* @see com.thoughtworks.xstream.converters.ConverterMatcher#canConvert(java.lang.Class)*/public boolean canConvert(final Class type) {return type.equals(ISMBinaryType.class);}/** java bean convert to xml* */public void marshal(final Object source, final HierarchicalStreamWriter writer, final MarshallingContext context) {//TODO}}/** xml convert to java bean* to get data by stream*/public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) {ISMBinaryType resultBean = new ISMBinaryType();ISMBinaryEncodingType ismBinaryEncodingType = new ISMBinaryEncodingType();String content = reader.getValue();//get the value of the node//handler the base64 convert to byte[]resultBean.setContent(org.apache.tomcat.util.codec.binary.Base64.decodeBase64(content));ismBinaryEncodingType.setStringValue(reader.getAttribute("binaryEncoding"));ismBinaryEncodingType.setType(0);resultBean.setBinaryEncoding(ismBinaryEncodingType);return resultBean;}}
在自定义转换器中遇到了如下错误:
cause-exception : java.lang.IndexOutOfBoundsException
cause-message : only START_TAG can have attributes END_TAG seen ...<CrsrTg binaryEncoding="base64Binary">8PDw8PDw8PDw8Q==</CrsrTg>... @88:94
是报我读取的这行标签找不到的属性。上网找了很久没有找到.
直到注意方法中的 reader 是一个流。那么就想到是否是读取的顺序问题,导致读的时候找不到某些指定值
随后调整了读取顺序
问题解决!
关于使用Xstream转换java对象时遇到的错误相关推荐
- XStream转换Java对象与XML
1.引入需要的jar包,在pom.xml中配置依赖 Java代码 <dependency> <groupId>com.thoughtworks.xstream</grou ...
- Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法
Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法 下载网络上的Adobe flash cs5 精简版(绿色版),Java运行时环境初始化时出现错误,你可能需要重装Flash ...
- 学java编程时遇到的错误汇总
学java编程时遇到的错误汇总: 命令行篇: 1,用命令行编译程序后,运行程序时出现这样的错误提示 A JNI error has occurred, please check your instal ...
- UG安装问题:载入Java VM时Windows出现错误:2 and 初始化错误NX License Error:The desired vendor daemon is down。[-97]
UG安装问题:载入Java VM时Windows出现错误:2 and 初始化错误NX License Error:The desired vendor daemon is down.[-97] 载入J ...
- java 中文域名转码_转换java对象
数据解析 ●网络解析 Gson (一个Java序列化/反序列化库,可以将JSON和java对象互相转换) Jackson (Jackson可以轻松地将Java对象转换成json对象和xml文档,同样也 ...
- 使用XStream对Java对象进行序列化和反序列化
参考官方两分钟教程:http://xstream.codehaus.org/tutorial.html 一.问题背景 项目中有很多需要保存XML和JSON文件的地方,现在的做法是通过字 ...
- Jackson转换java对象与json对象
本文转载自:http://www.cnblogs.com/songzhen/p/5794494.html 一.导入jar包: (因为之前使用的是jackson 1.x的jar包,所以在把json转换成 ...
- json字符串换java对象时遇到NoSuchMethodException的问题
最近在最一个项目,项目中涉及到 json字符串 转换成 java对象,其中遇到一个问题,在这里记录一下. 首先,我是按照下面博文的方式进行转的,地址如下: https://www.cnblogs.co ...
- Jackson json转为java对象时遇到不规范的命名规则处理
今天Android开发的同事问我他在调用服务端接口返回的json数据时,发现对方的json字符串中有没按照驼峰命名的key,结果导致他在用jackson转为java对象的时候,获取不到该key的值,下 ...
最新文章
- JavaScript 的同源策略
- Linux内核中max()宏的奥妙何在?(二)——大神Linus对这个宏怎么看?
- DL之YoloV2:Yolo V2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- VTK:隐藏线移除用法实战
- centos node跟npm 安装
- Visual C++中最常用的类与API函数
- centos 搭建Jenkins
- Oracle 19c 新特性:ADG的自动DML重定向增强读写分离
- Arts 第六周(4/22 ~ 4/28)
- 各种类型的电影排行榜-movie路线
- 康托尔点集matlab实数,康托尔(Cantor)是如何证明实数集是不可数的
- 如何把psd格式转为html,将psd转化为HTML网页详情讲解
- finereport 格式化金额函数_格式化金额数与自动四舍五入
- 来势汹汹,奥米克戎;是否补种,特定疫苗? | 经济学人全球早报精选
- 二流学校的计算机博士,二流大学-复旦大学计算机科学技术学院博士生刘鹏飞荣获2016年度百度奖学金...
- win10系统下找不到hosts文件解决方案
- hdmi接口线_太厉害了!HDMI线还能这么用,以前不知道真是浪费了
- 苹果手机圆圈在哪里设置_不知道苹果手机录音在哪里?那你就落伍了
- 解决vue项目中prettier、eslint格式冲突问题
- 现代控制理论——矩阵指数函数的计算方法