Мне нужно разархивировать 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();
работает локально