gpt4 book ai didi

eclipselink - 如何解决 EclipseLink 的 (MOXy) 'getting property "eclipselink.oxm.metadata-source“不支持”?

转载 作者:行者123 更新时间:2023-12-02 04:32:49 31 4
gpt4 key购买 nike

我主要根据 EclipseLink 网站上的教程编写了以下代码:

    Partner p = new Partner();
p.setId(1);
p.setKey("a");
p.setName("this is the name");

Map<String, Source> metadataSourceMap = new HashMap<String, Source>();
metadataSourceMap.put("com.company.pas.entity.partner", new StreamSource("/com/company/pas/entity/mapping/partner-pojo2xml.xml"));
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, metadataSourceMap);
JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] {Partner.class}, properties);

当我尝试运行这段代码时,我得到的只是一个异常:

Exception in thread "main" javax.xml.bind.JAXBException: property "eclipselink.oxm.metadata-source" is not supported
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:248)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:235)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:445)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)

这里我没有包含“映射文件”(partner-pojo2xml.xml),因为无论映射文件是否添加到 metaDataSourceMap 中,都会发生异常。

pom.xml 中的相关部分可以在下面找到。

<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.1</version>
</dependency>

我做错了什么?我尝试了太多组合,但就是无法运行。

最佳答案

您需要确保您有一个包含以下条目的 jaxb.properties 文件:

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

当您使用 Maven 时,此文件需要位于与用于引导 JAXBContext 的类的包名称相匹配的目录结构中。该结构需要位于 src/main/resources 文件夹下。下面是我在 GitHub 上的示例的链接:

关于eclipselink - 如何解决 EclipseLink 的 (MOXy) 'getting property "eclipselink.oxm.metadata-source“不支持”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22639129/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com