我部署一個簡單的OSGi的測試包成的JBoss 7.1.1,並嘗試做的ClassNotFoundException而JBoss的7.1.1動態類加載從OSGi的捆綁
Class clazz = Class.forName("org.jacorb.orb.ORB");
我的一切動態實例化Jacorb ORB是
java.lang.ClassNotFoundException: org.jacorb.orb.ORB from [Module "deployment.test:1.0.0" from Service Module Loader]
我已經做了:
- 在JBoss配置
standalone.xml
我添加的F或osgi子系統的能力<capability name="org.jacorb" startlevel="1"/>
,以便加載org.jacorb
模塊。這已經解決了這個問題,我的測試包安裝失敗。 我宣佈
Dependencies
-Descriptor上org.jacorb
我MANIFEST.MF
(也試過與不export
選項):Dependencies: org.jacorb export
我加入了
jboss-deployment-structure.xml
我META-INF
包含以下內容< XML version =「1.0」encoding =「UTF-8」? > < JBoss的部署結構> <部署> <依賴性> <模塊名稱= 「org.jacorb」/ > < /依賴性> < /部署> </JBoss的部署結構>
另外我做了實驗與類加載器並認識到,ContextClassLoader是null
。但最終,我無法將其作爲非測試代碼來實現,因爲Class.forName()
無法更改爲使用特定的類加載器。
那麼,爲什麼我會得到這個ClassNotFoundException?
在此先感謝
亞歷
你試過'Import-Package:org.jacorb.org'或'Import-Package:org.jacorb.org; resolution = optional'?這些是推薦的方式,DynamicImport-Package不是。另外,Class.forName()*不會爲類加載器提供可選參數。 – eis 2013-03-05 14:10:26