我通過命令行運行如下命令運行OSGi框架:越來越ClassCastException異常在獨立的OSGi框架,JAXB
Java的罐子org.eclipse.osgi_3.6.2.R36x_v20110210.jar -console
我的插件運行正常,但在運行我的插件,需要系統庫(JavaSE1.6.xx)來解析xml文件我得到如下異常跟蹤的JAXB包:
Exception in thread "DummyProgram" java.lang.ExceptionInInitializerError
at javax.xml.bind.DatatypeConverter.<clinit>(DatatypeConverter.java:78)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:262)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:260)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:260)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1100)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:143)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:110)
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:202)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:376)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
at com.entities.conf.JAXBMTSConfig.unmarshalApps(JAXBMTSConfig.java:113)
20 more..
Caused by: java.lang.ClassCastException: org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl cannot be cast to javax.xml.datatype.DatatypeFactory
at javax.xml.datatype.DatatypeFactory.newInstance(Unknown Source)
at javax.xml.bind.DatatypeConverterImpl.<clinit>(DatatypeConverterImpl.java:742)
嗨,感謝您的回覆... 現在我已經包含了xerces JAR和rt JAR到另一個插件 並導出這些軟件包,除了javax.xml.datatype, ,並用所有插件連接起來。 因此,它工作正常,但我們知道,這不是一個好的方法來包括JRE系統庫罐到我們的osgi插件.. 有沒有其他更好的方法來滿足運行時JRE導入的需求,當我們運行OSGi框架「外部Eclipse」..? –
Patel,我面臨着同樣的問題,我無法理解你做了什麼,你可以寫一個答案,解決問題的所有步驟。我會很感激,我真的認爲它會幫助別人。 –