您的安裝
當我將這些所有獨立 lib下,一個jar文件,然後更換名稱空間 無法正常使用,所有 命名空間繼續成爲一個 元帥NS1。
在這個設置中你有模型類和jaxb.properties
在同一個jar文件?您需要確保jaxb.properties仍然在同一個包你的模型類:
- COM \例子\讓Foo.class
- COM \例子\ Bar.class
- COM \實例\ 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
試過,不使我害怕,好建議,但由於任何區別。 – Gurnard 2011-06-06 13:46:31
對不起,它沒有工作。當我無法弄清我的文件是否被拾取時,我使用的一種策略是故意破壞它,並查看是否拋出異常。 – artbristol 2011-06-06 13:47:58
有一點需要注意的是,META-INF/services方法將爲使用該類路徑的所有人更改默認的JAXB impl,而不僅僅是應用程序。這比可以更改單個模型的JAXB提供程序的jaxb.properties有更大的影響。 – 2011-06-06 14:09:37