Я новичок в OSGi. Я использую eclipse PDE 'Kepler Service Release 2'.В OSGi, получая ClassNotFoundExceptions при попытке использовать классы из экспортированных пакетов системы
Я хочу сделать классы внутри пакета javax.servlet доступными для моих тестовых клиентов. Но я получаю NoClassDefFoundError, когда, просто для тестирования, пытается создать объект ServletException.
java.lang.NoClassDefFoundError: javax/servlet/ServletException.
Я пробовал эти два пути. оба не работают:
Попробуйте 1: с помощью системных пакетов
У меня есть эти параметры запуска в мое затмение OSGI Framework:
-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\""
я могу видеть этот Export-пакет в системе Bundle (0): javax.servlet; version="0.0.0"[exported]
Im my bundle У меня есть этот Import-Package: org.osgi.framework;version="[1.5,2)",javax.servlet
.
Я не мог получить эту работу даже с флагом -Dorg.osgi.framework.bootdelegation=*
при запуске контейнера.
Попробуйте 2: с помощью ExtensionBundle
Мой ExtensionBundle имеет банку JavaEE-Апи-6.0.jar в пути к классам и экспортирует пакет javax.servlet. Но все же я получаю 'java.lang.NoClassDefFoundError: javax/servlet/ServletException'.
У меня нет параметров запуска для этого.
В Manifest.mf расслоения расширения: ...
Bundle-ClassPath:., JavaEE-апи-6.0.jar
Экспорт-пакет: ...., javax.servlet, ...
Fragment-Host: system.bundle; расширение: = структура
...
я упускаю что-нибудь.
Заранее спасибо.