我是OSGi的新手。我正在使用eclipse PDE'開普勒服務版本2'。在OSGi中,在嘗試使用系統中的類導出包時獲取ClassNotFoundExceptions
我想讓javax.servlet包內的類可用於我的測試客戶端。但是,當爲了測試而試圖創建一個ServletException對象時,我得到了NoClassDefFoundError。
java.lang.NoClassDefFoundError: javax/servlet/ServletException.
我試過了這兩種方法。兩者都不能正常工作:
嘗試1:使用系統軟件包
我在日食OSGI框架,這些啓動參數:
-Dorg.osgi.framework.system.packages.extra=javax.servlet
-Dorg.osgi.framework.system.capabilities="osgi.ee; osgi.ee=\"JavaSE \";version:List=\"1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8\""
我可以在系統捆綁看到這個出口型套餐(0):javax.servlet; version="0.0.0"[exported]
我的包我有這個進口包裝:org.osgi.framework;version="[1.5,2)",javax.servlet
。
在啓動容器時,即使標記爲-Dorg.osgi.framework.bootdelegation=*
,我也無法正常工作。
嘗試2:使用ExtensionBundle
我ExtensionBundle有罐子在classpath中的JavaEE-API-6.0.jar和出口javax.servlet包。 但我仍然在'java.lang.NoClassDefFoundError:javax/servlet/ServletException'。
我沒有任何啓動參數。
在擴展束的MANIFEST.MF中: ...
捆綁-CLASSPATH中,JavaEE的-API-6.0.jar
出口型套餐:...,的javax.servlet, ...
片段,主持人:system.bundle;擴展:=框架
...
我失去了什麼。
在此先感謝。