gpt4 book ai didi

osgi - osgi (bndtools) 中的 ReSTLet bundle 无法启动。激活器错误 com/sun/net/httpserver/HttpHandler

转载 作者:行者123 更新时间:2023-12-04 22:55:42 35 4
gpt4 key购买 nike

我正在迁移到 bndtools 我创建并在标准 Eclipse 环境中工作的一些 osgi 插件。我添加了 Felix Web 控制台Jetty HTTP 服务,并用 Felix 替换了一些 Equinox 包等价物。

当我运行一个需要 org.reSTLet.jar 的特定包时,该包会解析但不会激活。控制台输出是:

____________________________ Welcome to Apache Felix Gogo

g! 2015-05-25 00:06:33.471:INFO:oejs.Server:jetty-7.x.y-SNAPSHOT 2015-05-25 00:06:33.545:INFO:oejsh.ContextHandler:started o.e.j.s.ServletContextHandler{/,null} 2015-05-25 00:06:33.620:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080 ! Failed to start bundle org.restlet-2.3.2.v20150501-1520, exception activator error com/sun/net/httpserver/HttpHandler from: org.restlet.engine.Engine:registerDefaultConnectors#839

我尝试了基于其他问题的解决方案,即 this one建议设置运行属性 org.osgi.framework.system.packages.extra = com.sun.net.httpserver (大概在我的 bndtools .bnd 文件中),另一个建议激活 < em>ReSTLet 应用程序使用框架监听器 -- 但这些对我不起作用,控制台输出是相同的。

我仍在学习,如果能提供解决方案的任何帮助,或者有关 bndtoolsEclipse 可能提供的帮助我的任何方法或功能的提示,我将不胜感激追本溯源。

顺便说一句,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

最佳答案

事实证明,在 stackoverflow.com 上针对此问题给出了其他答案,例如 this one是正确的,除了设置-runproperties: org.osgi.framework.system.packages.extra = com.sun.net.httpserverbndtools 启动配置中未达到预期结果。 bndtools FAQ建议如下,这解决了我的问题:

Note that using the -runsystempackages instruction is equivalent to setting the OSGi property org.osgi.framework.system.packages.extra; however it is better to use -runsystempackages because then the Run Requirements resolver inside Bndtools will take account of the availability of those packages during resolution.

关于osgi - osgi (bndtools) 中的 ReSTLet bundle 无法启动。激活器错误 com/sun/net/httpserver/HttpHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30432380/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com