如何在EclipseLink中创建JAXBContext?

时间:2011-03-11 14:43:35

标签: java jaxb eclipselink moxy

JAXBContext.newInstance()方法以属性作为参数接收Map

我应该指定哪些属性以及如何通过xml-mappings使JAXBContext实例了解多个文件?

Example显示了如何仅以实际系统中不可接受的方式指定一个文件(即使用new File(address))。而不是这个,我需要使用返回classLoader.getResource()对象的URL

谢谢!

UPD:

当我尝试实例化JAXBContext时,我得到了这个例子:

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-mapping文件,/target/classes/com/myproject/experiment/jaxb.properties - 它是在试图实例化JAXBContext的类附近。)

1 个答案:

答案 0 :(得分:2)

E 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中

要将MOXy用作JAXB提供程序,还需要在模型类中包含名为jaxb.properties的文件,其中包含以下条目:

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