3

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

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

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

谢谢!

升级版:

当我尝试实例化 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 映射文件,并且/target/classes/com/myproject/experiment/jaxb.properties- 它靠近试图实例化 JAXBContext 的类)。

4

1 回答 1

2

E clipseLink JAXB (MOXy)外部绑定文件可以是以下任何格式(或列表格式):

  • java.io.文件
  • 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
于 2011-03-11T15:05:24.883 回答