Пакет, о котором вы говорите, является частью JDK. Вам нужно выставить его, чтобы сделать его доступным в OSGi, и у вас есть два варианта:
Первый и в большинстве случаев предпочтительный вариант — предоставить доступ к этому пакету через системный пакет. Платформа OSGi имеет свойство, которое вы можете установить для этого:
org.osgi.framework.system.packages.extra=...
В качестве его значения вы предоставляете ему разделенный запятыми список пакетов, которые вы хотите выставить, поверх тех, которые уже выставлены фреймворком. В вашем случае, по крайней мере, com.sun.net.httpserver, но может быть и больше пакетов, которые вам нужны. В этом случае также убедитесь, что пакет, который использует этот пакет, импортирует этот пакет.
Второй вариант заключается в использовании механизма делегирования загрузки. Его следует использовать только в крайнем случае, так как он нарушает модульность, и если его использовать неосторожно, это может привести к другим проблемам. Опять же, это свойство, которое вам нужно установить:
org.osgi.framework.bootdelegation=*
Здесь вы можете указать список пакетов, разделенных запятыми, которые должны быть загружены загрузчиком загрузочного класса. Подстановочные знаки поддерживаются (как показано в примере выше), но вам рекомендуется быть как можно более конкретным, поэтому в вашем случае, например, используйте com.sun.* в качестве значения.
person
Marcel Offermans
schedule
18.02.2014