Я переношу на 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