2011-03-11 40 views
3

JAXBContext.newInstance()方法接收Map具有屬性作爲參數。如何在EclipseLink中創建JAXBContext?

哪些屬性,我應該如何規定,使JAXBContext實例瞭解與XML的映射幾個文件?

Example顯示如何僅以一種在實際系統中不可接受的方式指定一個文件(即使用new File(address))。取而代之的是我需要使用classLoader.getResource()返回URL對象。

謝謝!

UPD:

當我嘗試實例化JAXBContext而我得到這個exeption:

javax.xml.bind.JAXBException: property "eclipselink-oxm-xml" is not supported 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:118) 
    ... 

很明顯,jaxb.properties文件沒有在啓動時發現的。我應該把它放在哪裏? (我使用maven,實際上我試圖把它放到/target/jaxb.properties/target/classes/jaxb.properties/target/classes/META-INF/definitions/jaxb.properties - 這是近XML映射文件,/target/classes/com/myproject/experiment/jaxb.properties - 這是它試圖實例化的JAXBContext類的附近)。

回答

2

電子clipseLink JAXB (MOXy)外部綁定文件可以是任何的(或列表)的格式如下:

  • 的java.io.File
  • 的java.io.InputStream
  • java.io .Reader
  • 的java.net.URL
  • javax.xml.stream.XMLEventReader
  • javax.xml.stream.XMLStreamReader
  • javax.xml.transform.Source
  • org.w3c.dom.Node中
  • org.xml.sax.InputSource中

要使用莫西爲您的JAXB提供者,你還需要包括一個名爲jaxb.properties與您的模型類與以下條目:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 
+0

@Blaise Doughan:謝謝!是否可以設置多個XML映射文件? (或者,也許有任何機制允許在一個xml文件中導入所有映射 - 就像在Spring配置中一樣?) – Roman 2011-03-11 15:49:41

+0

@Roman - 您還可以傳遞任何上述格式的綁定文件列表。 – 2011-03-11 16:02:17

+1

@Blaise Doughan:酷! – Roman 2011-03-11 16:19:42

相關問題