2012-05-21 3 views
1

docx4j (que j'héberge) est généralement utilisé avec l'implémentation Sun/Oracle JAXB; les classes d'intérêt ci-dessous ont été générées en utilisant XJC.Le descripteur MOXy XMLCompositeCollectionMapping est manquant

Je pensais essayer EclipseLink MOXy, pour voir comment ça s'est passé.

Sur init contexte, je reçois l'erreur suivante:

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 

La première paire de classes référencées, nous avons un ENUM STCF et CTClientData

La deuxième paire de classes référencées, nous avons une autre ENUM STSourceType et CTSourceType

Comment contourner ce problème?

Répondre

1

Note: Je suis le chef EclipseLink JAXB (MOXy) et un membre du groupe d'experts JAXB (JSR-222).

J'ai été capable de recréer le problème que vous voyez. La question que vous voyez est dû au bogue suivant:

MISE À JOUR

Ce problème a été corrigé dans les EclipseLink 2.3.3 et 2.4.0 cours d'eau. Vous pouvez télécharger une nightly build qui contient le correctif à l'emplacement suivant:

+1

Merci beaucoup Blaise pour prendre le temps de regarder cette question. – JasonPlutext

+0

@JasonPlutext - Ce problème a maintenant été corrigé dans les flux EclipseLink 2.3.3 et 2.4.0. Vous pouvez télécharger une version nocturne avec le correctif à partir de l'emplacement suivant: http://www.eclipse.org/eclipselink/downloads/nightly.php –