Что мне нужно настроить, чтобы получить новый экземпляр объекта JaxbContent в проекте Tomcat - PullRequest
0 голосов
/ 09 апреля 2019

Мне нужно разархивировать xml на сервере Tomcat.Я уже достигаю этого на локальном компьютере, но те, которые я запускаю на сервере Tomcat, не работают.Я использую JDK 1.6 _115

JAXBContext jaxbContext = JAXBContext.newInstance(InvoiceType.class.getPackage().getName());

, выдавая исключение:

javax.xml.bind.JAXBException: local part cannot be "null" when creating a QName
 - with linked exception:
[java.lang.IllegalArgumentException: local part cannot be "null" when creating a QName]
    at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:878)
    at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:812)
    at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:174)
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:129)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:128)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:249)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:244)
...
Caused by: java.lang.IllegalArgumentException: local part cannot be "null" when creating a QName
    at javax.xml.namespace.QName.<init>(QName.java:246)
    at javax.xml.namespace.QName.<init>(QName.java:299)
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.setSchemaContext(MappingsGenerator.java:602)
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateDescriptor(MappingsGenerator.java:464)
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateProject(MappingsGenerator.java:231)
    at org.eclipse.persistence.jaxb.compiler.Generator.generateProject(Generator.java:188)
    at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:883)
    at org.eclipse.persistence.jaxb.JAXBContext$ContextPathInput.createContextState(JAXBContext.java:876)

Я уже пробовал использовать eclipselink 2.5 и 2.6

Я ожидал, что исключения не будут в состояниииз do unmarshal вот так:

Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
InvoiceType invoiceType = (InvoiceType) ((JAXBElement) jaxbUnmarshaller.unmarshal(isCopy2)).getValue();

работает локально

...