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

前端之家收集整理的这篇文章主要介绍了微信开发不用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();	
	}
原文链接:https://www.f2er.com/xml/297463.html

猜你在找的XML相关文章