Ваша настройка
Когда я перемещаю все это в отдельный
lib, файл jar, затем пространство имен
замена не работает и все
пространства имен по-прежнему ns1 на
маршал.
В этой настройке у вас есть классы моделей и jaxb.properties
в одном и том же файле jar? Вам нужно убедиться, что jaxb.properties все еще находятся в том же пакете, что и классы вашей модели:
- ком \ например \ Foo.class
- ком \ например \ Bar.class
- ком \ например \ jaxb.properties
jaxb.properties не найден
исключение.
Ваши jaxb.properties найдены?
Нет исключения, если файл jaxb.properties отсутствует, поскольку среда выполнения JAXB по умолчанию будет просто использовать значение JAXB impl (либо RI, либо определено с помощью механизма META-INF/services
. Вы можете проверить, является ли оно найти ваш файл jaxb.properties по недопустимой записи JAXBContextFactory, это создаст исключение, например:
javax.xml.bind.context.factory = INVALID_ENTRY
приведет к следующему исключению:
Exception in thread "main" javax.xml.bind.JAXBException
- with linked exception:
[java.lang.ClassNotFoundException: INVALID_ENTRY]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:187)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:331)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
at forum22.Demo.main(Demo.java:10)
Caused by: java.lang.ClassNotFoundException: INVALID_ENTRY
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at javax.xml.bind.ContextFinder.safeLoadClass(ContextFinder.java:481)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:185)
... 4 more