开发中需要解析其他系统传的报文数据,需要转制定格式的内容.故需要在格式比较特殊的情况下需要自定义转换器.

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对象时遇到的错误相关推荐

  1. XStream转换Java对象与XML

    1.引入需要的jar包,在pom.xml中配置依赖 Java代码 <dependency> <groupId>com.thoughtworks.xstream</grou ...

  2. Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法

    Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法 下载网络上的Adobe flash cs5 精简版(绿色版),Java运行时环境初始化时出现错误,你可能需要重装Flash ...

  3. 学java编程时遇到的错误汇总

    学java编程时遇到的错误汇总: 命令行篇: 1,用命令行编译程序后,运行程序时出现这样的错误提示 A JNI error has occurred, please check your instal ...

  4. 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 ...

  5. java 中文域名转码_转换java对象

    数据解析 ●网络解析 Gson (一个Java序列化/反序列化库,可以将JSON和java对象互相转换) Jackson (Jackson可以轻松地将Java对象转换成json对象和xml文档,同样也 ...

  6. 使用XStream对Java对象进行序列化和反序列化

    参考官方两分钟教程:http://xstream.codehaus.org/tutorial.html 一.问题背景         项目中有很多需要保存XML和JSON文件的地方,现在的做法是通过字 ...

  7. Jackson转换java对象与json对象

    本文转载自:http://www.cnblogs.com/songzhen/p/5794494.html 一.导入jar包: (因为之前使用的是jackson 1.x的jar包,所以在把json转换成 ...

  8. json字符串换java对象时遇到NoSuchMethodException的问题

    最近在最一个项目,项目中涉及到 json字符串 转换成 java对象,其中遇到一个问题,在这里记录一下. 首先,我是按照下面博文的方式进行转的,地址如下: https://www.cnblogs.co ...

  9. Jackson json转为java对象时遇到不规范的命名规则处理

    今天Android开发的同事问我他在调用服务端接口返回的json数据时,发现对方的json字符串中有没按照驼峰命名的key,结果导致他在用jackson转为java对象的时候,获取不到该key的值,下 ...

最新文章

  1. JavaScript 的同源策略
  2. Linux内核中max()宏的奥妙何在?(二)——大神Linus对这个宏怎么看?
  3. DL之YoloV2:Yolo V2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  4. VTK:隐藏线移除用法实战
  5. centos node跟npm 安装
  6. Visual C++中最常用的类与API函数
  7. centos 搭建Jenkins
  8. Oracle 19c 新特性:ADG的自动DML重定向增强读写分离
  9. Arts 第六周(4/22 ~ 4/28)
  10. 各种类型的电影排行榜-movie路线
  11. 康托尔点集matlab实数,康托尔(Cantor)是如何证明实数集是不可数的
  12. 如何把psd格式转为html,将psd转化为HTML网页详情讲解
  13. finereport 格式化金额函数_格式化金额数与自动四舍五入
  14. 来势汹汹,奥米克戎;是否补种,特定疫苗? | 经济学人全球早报精选
  15. 二流学校的计算机博士,二流大学-复旦大学计算机科学技术学院博士生刘鹏飞荣获2016年度百度奖学金...
  16. win10系统下找不到hosts文件解决方案
  17. hdmi接口线_太厉害了!HDMI线还能这么用,以前不知道真是浪费了
  18. 苹果手机圆圈在哪里设置_不知道苹果手机录音在哪里?那你就落伍了
  19. 解决vue项目中prettier、eslint格式冲突问题
  20. 现代控制理论——矩阵指数函数的计算方法

热门文章

  1. u盘在电脑上读不出来?数据恢复解决方法在这
  2. 用C++逆向分析解密,制作游戏破解辅助外挂竟如此简单!
  3. 淘宝支持优站(U站)关键词设置代码meta name标签
  4. wp super cache无法预缓存问题
  5. QN模块java下载_QN卡片版app下载-QN卡片版下载v35 安卓版-西西软件下载
  6. MikuMikuDance中对于Local和Global旋转方式的特殊处理
  7. 众享比特荣膺2020新一代信息技术行业潜力10强企业
  8. Latex 绘制三线表格
  9. March 2007
  10. 【干货】如何利用拐点坐标生成面要素