Пакет Restlet в osgi (bndtools) не запускается. Ошибка активатора com/sun/net/httpserver/HttpHandler

Я переношу на bndtools некоторые плагины osgi, которые я создал и которые работали в стандартной среде Eclipse. Я добавил веб-консоль Felix и службу Jetty HTTP и заменил некоторые пакеты Equinox на Felix. эквиваленты.

Когда я запускаю один конкретный пакет, для которого требуется org.restlet.jar, пакет разрешается, но не активируется. И вывод консоли:

____________________________ Добро пожаловать в Apache Felix Gogo

грамм! 2015-05-25 00:06:33.471:INFO:oejs.Server:jetty-7.xy-SNAPSHOT 2015-05-25 00:06:33.545:INFO:oejsh.ContextHandler:started oejsServletContextHandler{/,null} 2015 -05-25 00:06:33.620:INFO:oejs.AbstractConnector:Started [email protected]:8080 ! Не удалось запустить пакет org.restlet-2.3.2.v20150501-1520, ошибка активатора исключения com/sun/net/httpserver/HttpHandler из: org.restlet.engine.Engine:registerDefaultConnectors#839

Я пробовал решения, основанные на других вопросах, а именно этот, который рекомендует установить свойство запуска org.osgi.framework.system.packages.extra = com.sun.net.httpserver (предположительно, в моем файле bndtools .bnd), и другой, который предлагает активировать приложение Restlet с помощью прослушивателя фреймворка, но они не работает для меня, и вывод консоли был таким же.

Я все еще учусь, и я был бы признателен за любую помощь, ведущую к решению, или советы по любым методам или функциям, которые bndtools или Eclipse могут предложить, чтобы помочь мне отследить это до его причина.

Между прочим, Felix Web Console работает как обязательный пакет для этого же подключаемого модуля.

Вот моя конфигурация bndtools:

Bundle-Version: 0.0.0.${tstamp}
Service-Component:  \
    *
-runfw: org.apache.felix.framework;version='[4,5)'
-runee: JavaSE-1.7
-runsystemcapabilities: ${native_capability}

-resolve.effective: active;skip:="osgi.service"


-buildpath:  \
    osgi.core,\
    osgi.cmpn,\
    biz.aQute.bnd.annotation,\
    org.apache.felix.log,\
    com.fiscio.api;version=latest,\
    osgi.enterprise,\
    org.restlet,\
    org.restlet.ext.json,\
    org.json

-runbundles:  \
    com.fiscio.api;version=latest,\
    org.apache.felix.configadmin;version='[1.8.0,1.8.1)',\
    org.apache.felix.gogo.command;version='[0.14.0,0.14.1)',\
    org.apache.felix.gogo.runtime;version='[0.16.2,0.16.3)',\
    org.apache.felix.gogo.shell;version='[0.10.0,0.10.1)',\
    org.apache.felix.http.jetty;version='[2.2.2,2.2.3)',\
    org.apache.felix.log;version='[1.0.1,1.0.2)',\
    org.apache.felix.metatype;version='[1.0.10,1.0.11)',\
    org.apache.felix.scr;version='[1.8.2,1.8.3)',\
    org.apache.felix.webconsole;version='[4.2.2,4.2.3)',\
    org.json;version='[1.0.0,1.0.1)',\
    org.restlet;version='[2.3.2,2.3.3)',\
    org.restlet.ext.json;version='[2.3.2,2.3.3)',\
    osgi.cmpn;version='[5.0.0,5.0.1)',\
    osgi.enterprise;version='[4.2.0,4.2.1)'

-runrequires:  \
    osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.webconsole)',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.configadmin)',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.metatype)',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.log)',\
    osgi.identity;filter:='(&(osgi.identity=osgi.cmpn)(version>=4.2))',\
    osgi.identity;filter:='(&(osgi.identity=org.apache.felix.scr)(version>=1.6.0))',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.http.jetty)',\
    osgi.identity;filter:='(osgi.identity=com.fiscio.api)',\
    osgi.identity;filter:='(osgi.identity=org.json)',\
    osgi.identity;filter:='(osgi.identity=org.restlet.ext.json)',\
    osgi.identity;filter:='(osgi.identity=org.restlet)'

## Uncomment if you need to change the HTTP port
-runproperties: org.osgi.framework.system.packages.extra = com.sun.net.httpserver

Private-Package:  \
    com.fiscio.rest,\
    com.fiscio.rest.resources

person Ken Diederich    schedule 25.05.2015    source источник


Ответы (1)


Оказывается, другие ответы на эту проблему на stackoverflow.com, такие как этот были правильными, за исключением того, что настройка -runproperties: org.osgi.framework.system.packages.extra = com.sun.net.httpserver не привела к желаемому результату в конфигурации запуска bndtools. Часто задаваемые вопросы по bndtools предлагает следующее, что решило мою проблему:

Обратите внимание, что использование инструкции -runsystempackages эквивалентно установке свойства OSGi org.osgi.framework.system.packages.extra; однако лучше использовать -runsystempackages, потому что тогда преобразователь требований к запуску внутри Bndtools будет учитывать доступность этих пакетов во время разрешения.

person Ken Diederich    schedule 26.05.2015