2013-10-26 52 views
1
javax.xml.bind.PropertyException: name: eclipselink.id-resolver value: [email protected] 
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.setProperty(AbstractUnmarshallerImpl.java:332) 
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.setProperty(UnmarshallerImpl.java:444) 

伙计们,我使用这行代码获取此属性例外:物业异常使用自定义IDResolver

jaxbUnmarshaller.setProperty(UnmarshallerProperties.ID_RESOLVER, new MyIDResolver()); 

请帮助我,我不知道我做错了!

回答

2

首先你确定你需要使用自定义IDResolver?使用标准JAXB (JSR-222)密钥用@XmlID标注,外键用@XmlIDREF标注,并且所有加入都自动完成。

UnmarshallerProperties.ID_RESOLVEREclipseLink JAXB (MOXy)一个属性,你将需要确保您使用的莫西为您的JAXB提供者使用它。

如果您正在使用JAXB的版本包含在JDK中您可以使用以下属性:

com.sun.xml.internal.bind.IDResolver 

如果您使用的是JAXB参考实现,你可以使用以下属性:

com.sun.xml.bind.IDResolver 
1

看起来您正尝试在Sun的JAXB实现(当前为Oracle)上设置EclipseLink属性(org.eclipse.persistence.jaxb.UnmarshallerProperties)。我不是EclipseLink的专家,但常量的值表明您应该使用MOXy(另一个JAXB实现)。更多关于如何配置莫西: