缺少MOXy XMLCompositeCollectionMapping描述符 [英] MOXy XMLCompositeCollectionMapping descriptor is missing
问题描述
docx4j(我主持)通常与Sun / Oracle JAXB实现一起使用;下面感兴趣的类是使用XJC生成的。
docx4j (which I host) is typically used with the Sun/Oracle JAXB implementation; the classes of interest below were generated using XJC.
我以为我会尝试EclipseLink MOXy,看看它是怎么回事。
I thought I'd try EclipseLink MOXy, to see how it went.
在上下文初始化时,我收到以下错误:
On context init, I get the following error:
ERROR org.docx4j.jaxb.Context .<clinit> line 107 - Cannot initialize context
javax.xml.bind.JAXBException:
Descriptor Exceptions:
---------------------------------------------------------
Exception [EclipseLink-110] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Descriptor is missing for class [org.docx4j.vml.spreadsheetDrawing.STCF].
Mapping: org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping[moveWithCellsOrSizeWithCellsOrAnchor]
Descriptor: XMLDescriptor(org.docx4j.vml.spreadsheetDrawing.CTClientData --> [DatabaseTable(ns15:ClientData)])
Exception [EclipseLink-110] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Descriptor is missing for class [org.docx4j.bibliography.STSourceType].
Mapping: org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping[abbreviatedCaseNumberOrAlbumTitleOrAuthor]
Descriptor: XMLDescriptor(org.docx4j.bibliography.CTSourceType --> [])
Runtime Exceptions:
---------------------------------------------------------
- with linked exception:
[Exception [EclipseLink-0] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.IntegrityException
Descriptor Exceptions:
---------------------------------------------------------
Exception [EclipseLink-110] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Descriptor is missing for class [org.docx4j.vml.spreadsheetDrawing.STCF].
Mapping: org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping[moveWithCellsOrSizeWithCellsOrAnchor]
Descriptor: XMLDescriptor(org.docx4j.vml.spreadsheetDrawing.CTClientData --> [DatabaseTable(ns15:ClientData)])
Exception [EclipseLink-110] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Descriptor is missing for class [org.docx4j.bibliography.STSourceType].
Mapping: org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping[abbreviatedCaseNumberOrAlbumTitleOrAuthor]
Descriptor: XMLDescriptor(org.docx4j.bibliography.CTSourceType --> [])
Runtime Exceptions:
---------------------------------------------------------
]
at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:698)
at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:658)
at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:143)
at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:110)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at org.docx4j.jaxb.Context.<clinit>(Context.java:79)
at org.docx4j.samples.OpenMainDocumentAndTraverse.<clinit>(OpenMainDocumentAndTraverse.java:52)
Caused by: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.IntegrityException
Descriptor Exceptions:
---------------------------------------------------------
Exception [EclipseLink-110] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Descriptor is missing for class [org.docx4j.vml.spreadsheetDrawing.STCF].
Mapping: org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping[moveWithCellsOrSizeWithCellsOrAnchor]
Descriptor: XMLDescriptor(org.docx4j.vml.spreadsheetDrawing.CTClientData --> [DatabaseTable(ns15:ClientData)])
Exception [EclipseLink-110] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Descriptor is missing for class [org.docx4j.bibliography.STSourceType].
Mapping: org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping[abbreviatedCaseNumberOrAlbumTitleOrAuthor]
Descriptor: XMLDescriptor(org.docx4j.bibliography.CTSourceType --> [])
Runtime Exceptions:
---------------------------------------------------------
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:535)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:476)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:435)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:676)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:634)
at org.eclipse.persistence.oxm.XMLContext$XMLContextState.<init>(XMLContext.java:830)
at org.eclipse.persistence.oxm.XMLContext$XMLContextState.<init>(XMLContext.java:770)
at org.eclipse.persistence.oxm.XMLContext.<init>(XMLContext.java:177)
at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:726)
at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:696)
... 13 more
第一个一对引用的类,我们有一个枚举 STCF 和 CTClientData
The first pair of referenced classes, we have an enum STCF and CTClientData
第二对引用类,我们有另一个枚举 STSourceType 和 CTSourceType
The second pair of referenced classes, we have another enum STSourceType and CTSourceType
我该如何解决这个问题?
How might I workaround this problem?
推荐答案
注意:我是 EclipseLink JAXB(MOXy) 领导和 JAXB(JSR-222) 专家组。
Note: I'm the EclipseLink JAXB (MOXy) lead and a member of the JAXB (JSR-222) expert group.
我已经能够重现你所看到的问题。您看到的问题是由于以下错误:
I have been able to recreate the issue you are seeing. The issue you are seeing is due to the following bug:
- http://bugs.eclipse.org/380122
UPDATE
此问题现已在EclipseLink 2.3.3和2.4.0流中得到修复。您可以从以下位置下载包含修复程序的每晚构建:
This issue has now been fixed in the EclipseLink 2.3.3 and 2.4.0 streams. You can download a nightly build that contains the fix from the following location:
- http://www.eclipse.org/eclipselink/downloads/nightly.php
这篇关于缺少MOXy XMLCompositeCollectionMapping描述符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!