Пакетът, за който говорите, е част от 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