免责声明:我在这一切jaxbcontext.newinstance()与EclipseLink的莫西挂起
我试图让我的XML工作输出JSON除了项目令人难以置信的业余爱好者。 最初,这样做的方法涉及一种方法,它接受Element参数并递归插入net.sf JSONObject类型的对象以创建JSON输出,并使用正常的JAXBContext
的Marshaller
编组为XML。
我想要的是将MOXy用作我的JAXB提供程序,然后从绑定中编组XML和JSON。
最初,XML被编组的时候,我有:
jc = JAXBContext.newInstance("packageA:packageB:packageC...etc.");
public static String marshal(JAXBContext context, JAXBElement<?> je) throws JAXBException {
StringWriter sout = new StringWriter();
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.FALSE);
m.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
m.marshal(je, sout);
return sout.toString();
}
然后
(这可能是重要的,所以我应该提到的是应用我在使用弹簧框架。)
此外,我读过每一个关于EclipseLink的Blaise博客帖子。有几次。我只是它的一个非常粗浅的认识而会如果升值链接我到他的一个页面,你解释是它的任何解决方案,以及为什么它的工作原理
话虽这么说,我尝试了包括jaxb.properties
文件其中一个试图获得MOXY的软件包,而不是JAXBElement
来获得我的绑定。但是,JAXBContext.newInstance("my list of : delimited packages")
只是使程序挂起。甚至没有错误,只是挂起它。单步显示调用EclipseLink newInstance
方法挂起。 我在网上搜索了很多小时的解决方案。我有太多的类只包含在一个Class []中,所以不能通过使用一个类的数组来设置属性。这也是我无法使用本机moxy API而不是使用属性文件的原因。我认为我的EclipseLink设置正确:我在我的环境变量中设置了eclipselink_home
,并将eclipselink.jar添加到了我的构建路径中。
P.S.对于我差劲的大写字母和格式的追溯道歉。 – 2013-03-05 21:44:48