微信开发不用xstream来将对象解析成xml

背景:最近在研究微信开发,而且是在基于java 开发,所以参考了柳峰的博客关于将消息封装成xml格式返回开源框架xstream来实现Java类到xml的转换,但是就像好多人所发现的一样,配置好之后通过手机微信端访问会报错:访问/coreServlet时报了一个错误NoClassDefFoundError(类找不到),并且提示org.liufeng.weixin.util.MessageUtil类不能被实例化。这里柳峰也给出了解决方案:NoClassDeffoundError解决方案但是这也不是很好的办法。所以自己也尝试了通过其它方法来解决问题,首先考虑基于目前应用运行的环境已有的lib包:dom4j.jar来解决。dom4j里面的JAXBContextjaxbContext来获得要解析的Class类,这里需要下载dom4j.jar包,用 MarshallerjaxbMarshaller来将生成实例,然后用jaxbMarshaller.marshal(textMessage,writer)来生成xml文件。  但是问题来了,怎样让writer生成的xml格式化输出呢。因为微信返回消息有些是CDATA。想了很多办法,目前没有解决这个问题,恳请各位高手指点。

public static String textMessageToXml(TextMessage textMessage) {
			JAXBContext jaxbContext = JAXBContext.newInstance(TextMessage.class);
			Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
			// output pretty printed  
			jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
			Writer writer = new StringWriter();
			format.setSuppressDeclaration(true); 	
			jaxbMarshaller.marshal(textMessage,writer);
			System.out.println("修改好之后的xml:"+xmlWriter);
			return xmlWriter.toString();	
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值