docx4j icon indicating copy to clipboard operation
docx4j copied to clipboard

LinkageError: loader constraint violation

Open amikmr1 opened this issue 3 years ago • 0 comments

https://stackoverflow.com/questions/66914307/linkageerror-loader-constraint-violation-bundleclassloader-docx4j

Am using org.docx4j.Docx4J in a desktop application for converting WORD file to PDF and it all works fine.

The same desktop application, when launched as an OSGi plug-in, throws NoClassDefFoundError: javax/xml/bind/JAXBException for the above mentioned conversion.

Upon adding the below dependencies:

implementation group: 'org.docx4j', name: 'docx4j-JAXB-Internal', version: '8.2.8'

implementation group: 'org.docx4j', name: 'docx4j-JAXB-ReferenceImpl', version: '8.2.8'

implementation group: 'org.docx4j', name: 'docx4j-JAXB-MOXy', version: '8.2.8'

I get the below error (in bold):

java.lang.linkageerror: loader constraint violation: when resolving interface method "javax.xml.stream.XMLStreamReader.getNamespaceContext()Ljavax/xml/namespace/NamespaceContext;" the class loader "" (instance of org.apache.felix.framework.BundleWiringImpl$BundleClassLoader@2dd2e270, child of sun.misc.Launcher$AppClassLoader@277050dc) of the current class, org/eclipse/persistence/internal/oxm/record/namespaces/UnmarshalNamespaceContext, and the class loader for the method's defining class, javax/xml/stream/XMLStreamReader, have different Class objects for the type javax/xml/namespace/NamespaceContext used in the signature

at org.eclipse.persistence.internal.oxm.record.namespaces.UnmarshalNamespaceContext.getPrefix(UnmarshalNamespaceContext.java:58)

at org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.resolveNamespaceUri(UnmarshalRecordImpl.java:1338)

at org.eclipse.persistence.internal.oxm.SAXFragmentBuilder.startElement(SAXFragmentBuilder.java:78)

at org.eclipse.persistence.internal.oxm.XMLRelationshipMappingNodeValue.setupHandlerForKeepAsElementPolicy(XMLRelationshipMappingNodeValue.java:231)

at org.eclipse.persistence.internal.oxm.XMLAnyObjectMappingNodeValue.startElement(XMLAnyObjectMappingNodeValue.java:179)

at org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.startElement(UnmarshalRecordImpl.java:864)

at org.eclipse.persistence.internal.oxm.record.XMLStreamReaderReader.parseEvent(XMLStreamReaderReader.java:138)

at org.eclipse.persistence.internal.oxm.record.XMLStreamReaderReader.parse(XMLStreamReaderReader.java:102)

at org.eclipse.persistence.internal.oxm.record.XMLStreamReaderReader.parse(XMLStreamReaderReader.java:89)

at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:940)

at org.eclipse.persistence.internal.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:655)

at org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:637)

at org.docx4j.convert.in.FlatOpcXmlImporter.(FlatOpcXmlImporter.java:132)

Please advise! Thanks in advance!

amikmr1 avatar Apr 02 '21 04:04 amikmr1