1
javax.xml.bind.PropertyException: name: eclipselink.id-resolver value:   com.persistence.MyIDResolver@4ab34646
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.setProperty(AbstractUnmarshallerImpl.java:332)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.setProperty(UnmarshallerImpl.java:444)

皆さん、私はこのコード行を使用してこのプロパティの例外を取得しています:

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

私を助けてください、私は何が間違っているのか分かりません!!!

4

2 に答える 2

2

まず、カスタムを使用する必要がありますIDResolverか? 標準の JAXB (JSR-222)キーを使用すると、キーに注釈が付けられ@XmlID、外部キーに注釈が付けられ@XmlIDREF、すべての結合が自動的に行われます。

UnmarshallerProperties.ID_RESOLVEREclipseLink JAXB (MOXy)のプロパティです。これを使用するには、JAXBプロバイダとしてMOXyを使用していることを確認する必要があります。

JDK に含まれているバージョンの JAXB を使用している場合は、次のプロパティを使用できます。

com.sun.xml.internal.bind.IDResolver

また、JAXB 参照実装を使用している場合は、次のプロパティを使用できます。

com.sun.xml.bind.IDResolver
于 2013-10-28T13:36:12.247 に答える
1

Sun の JAXB 実装 (現在は Oracle) で EclipseLink プロパティ (org.eclipse.persistence.jaxb.UnmarshallerProperties) を設定しようとしているようです。私は EclipseLink の専門家ではありませんが、定数の値は、MOXy (別の JAXB 実装) を使用する必要があることを示唆しています。MOXy の設定方法の詳細:

于 2013-10-26T17:26:53.783 に答える