免責聲明:我在這一切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