2013-10-26 55 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實現)。更多關於如何配置莫西: