的jaxb.properties
需求是在相同的封裝領域類您正在創建的JAXBContext。的JAXBContext,jaxb.properties和MOXY
我使用Moxy的xml驅動配置,因爲我不想使用註釋或XJC生成的對象。我有一個現有的域類分佈在多個包中。這是否意味着我需要在所有這些軟件包中都有jaxb.properties
,或者有更好的選擇(也許編寫自己的某個可以從jvm arg或其他東西讀取的接口的實現)?
的jaxb.properties
需求是在相同的封裝領域類您正在創建的JAXBContext。的JAXBContext,jaxb.properties和MOXY
我使用Moxy的xml驅動配置,因爲我不想使用註釋或XJC生成的對象。我有一個現有的域類分佈在多個包中。這是否意味着我需要在所有這些軟件包中都有jaxb.properties
,或者有更好的選擇(也許編寫自己的某個可以從jvm arg或其他東西讀取的接口的實現)?
這是否意味着我需要在所有 這些包中包含jaxb.properties?
如果你正在創建類的JAXBContext
,那麼你需要有一個jaxb.properties
文件中傳遞的域類的包中的至少一個。在下面的例子中,你可以有一個jaxb.properties
文件中任一package1
或package2
。
JAXBContext jc = JAXBContext.newInstance(package1.Foo.class, package2.Bar.class);
如果您正在創建包名你JAXBContext
,那麼你需要在包裝的至少一個jaxb.properties
文件。請注意,軟件包由':'分隔。
JAXBContext jc = JAXBContext.newInstance("package1:package2");
或者有更好的選擇
我的選擇是使用標準的API JAXB用jaxb.properties
文件來指定莫西作爲JAXB提供商。有些人喜歡使用原生的莫西API來做到這一點:
JAXBContext jc = org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(new Class[] {Foo.class, Bar.class}, null);
更多信息
在所提供的鏈接,我看到了下面的輸出中如果我只在1個包中指定jaxb.properties。 「class com.sun.xml.bind.v2.runtime.JAXBContextImpl」。正如你所看到的那樣,jaxb.props不在那裏的包,它正在恢復到太陽的實現。我們不會有這個問題嗎? – 2012-08-03 14:10:50
只要'jaxb.properties'文件位於爲創建'JAXBContext'而傳遞的類的包之一中,您就可以。這就是我試圖用這個帖子來展示的東西。運行該示例時您看到不同的結果嗎? – 2012-08-03 14:33:31
我還沒有運行過這個例子,但是讀到你的帖子後對我提出了這個疑問,因爲你沒有提到這個問題。如果您可以更新您的帖子以明確聲明「此行爲正常」,那將會很好。 – 2012-08-03 14:36:33