在Apache Felix OSGI中安装和运行Web管理控制台

时间:2013-10-22 15:06:36

标签: apache-felix

我正在尝试在Apache Felix 4.2.1中安装和运行Apache Felix Web管理控制台(4.2.0),但它不起作用。

我安装了Felix Http Jetty 2.2.1软件包,Felic Configuration Admin Service 1.8.0软件包,Log Service 1.0.1软件包,EventAdmin 1.3.2软件包和Felix Web管理控制台4.2.0

当我尝试启动Web管理控制台时,它说:

  

org.osgi.framework.BundleException:无法解析包“org.apache.felix.webconsole_4.2.0 [29]”。原因:缺少约束:Import-Package:org.apache.commons.fileupload;版本= “[1.2.0,2.0.0)”

我正在使用Java 1.6.0.26,Ubuntu 12.10!

jonathan@JONATHAN:/datos/jonathan/Programas/apache-felix-framework-4.2.1$ java -jar bin/felix.jar 

2013-10-22 16:38:37.389:INFO:oejs.Server:jetty-7.x.y-SNAPSHOT
2013-10-22 16:38:37.412:INFO:oejsh.ContextHandler:started o.e.j.s.ServletContextHandler{/,null}

____________________________
Welcome to Apache Felix Gogo

g! 2013-10-22 16:38:37.434:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8888

lb

START LEVEL 1
ID|State      |Level|Name
0|Active     |    0|OSGi System Bundle (3.7.2.v20120110-1415)
1|Active     |    1|Apache Felix Bundle Repository (1.6.6)
2|Active     |    1|Apache Felix Gogo Command (0.12.0)
3|Active     |    1|Apache Felix Gogo Runtime (0.10.0)
4|Active     |    1|Apache Felix Gogo Shell (0.10.0)
23|Active     |    1|Apache Felix Configuration Admin Service (1.8.0)
24|Active     |    1|Apache Felix Log Service (1.0.1)
26|Active     |    1|Apache Felix Http Jetty (2.2.1)
27|Active     |    1|Apache Felix EventAdmin (1.3.2)
29|Installed  |    1|Apache Felix Web Management Console (4.2.0)
g! start 29

org.osgi.framework.BundleException: The bundle "org.apache.felix.webconsole_4.2.0 [29]" >could not be resolved. Reason: Missing Constraint: Import-Package:     org.apache.commons.fileupload; version="[1.2.0,2.0.0)"

g!

此致

2 个答案:

答案 0 :(得分:3)

我有类似的问题,我通过清理Felix安装来解决它们,然后我从头开始启动Felix,这意味着,我在Apache Felix Gogo上有这样的东西:

____________________________
Welcome to Apache Felix Gogo

g! lb
START LEVEL 1
   ID|State      |Level|Name
    0|Active     |    0|System Bundle (4.6.0)
    1|Active     |    1|Apache Felix Bundle Repository (2.0.2)
    2|Active     |    1|Apache Felix Gogo Command (0.14.0)
    3|Active     |    1|Apache Felix Gogo Runtime (0.12.1)
    4|Active     |    1|Apache Felix Gogo Shell (0.10.0)
g! 

因此,在控制台上,只需添加以下命令

即可
list -v

它将为您提供可用软件包的列表,因此,只需查找Webconsole软件包名称并运行它(始终在Gogo控制台上):

g! deploy org.apache.felix.webconsole

这将下载所需的库,并在控制台上打印以下内容:

Target resource(s):
-------------------
   Apache Felix Web Management Console (3.1.2)

Required resource(s):
---------------------
   Apache Felix Configuration Admin Service (1.2.4)
   Apache Felix Http Bundle (2.0.4)
   Apache Felix Log Service (1.0.0)
   Apache Felix HTTP Service Jetty (1.0.0)

Optional resource(s):
---------------------
   OSGi R4 Compendium Bundle (4.0.0)
   Apache Felix Declarative Services (1.6.0)
   Apache Felix iPOJO (1.8.0)
   Apache Felix iPOJO WebConsole Plugins (1.6.0)
   Apache Felix Shell Service (1.4.2)

Deploying...
done.
g! 

所以,现在,如果你运行lb(list bundles命令)

g! lb
START LEVEL 1
   ID|State      |Level|Name
    0|Active     |    0|System Bundle (4.6.0)
    1|Active     |    1|Apache Felix Bundle Repository (2.0.2)
    2|Active     |    1|Apache Felix Gogo Command (0.14.0)
    3|Active     |    1|Apache Felix Gogo Runtime (0.12.1)
    4|Active     |    1|Apache Felix Gogo Shell (0.10.0)
    5|Installed  |    1|Apache Felix Configuration Admin Service (1.2.4)
    6|Installed  |    1|Apache Felix Http Bundle (2.0.4)
    7|Installed  |    1|Apache Felix Log Service (1.0.0)
    8|Installed  |    1|OSGi R4 Compendium Bundle (4.0.0)
    9|Installed  |    1|Apache Felix Declarative Services (1.6.0)
   10|Installed  |    1|HTTP Service (1.0.0)
   11|Installed  |    1|Apache Felix iPOJO (1.8.0)
   12|Installed  |    1|Apache Felix Web Management Console (3.1.2)
   13|Installed  |    1|Apache Felix iPOJO WebConsole Plugins (1.6.0)
   14|Installed  |    1|Apache Felix Shell Service (1.4.2)
g!

所以,现在,只需查看捆绑包" HTTP服务"和#34; Apache Felix Web管理控制台"并启动它们:

g! start 10
g! start 12

最后,只需走路径(默认端口是8080):

http://localhost:28372/system/console/bundles

顺便说一句,您可以通过添加以下参数来更改config.properties(在Felix中)上的端口:

org.osgi.service.http.port=28372

希望这可以帮助别人......

答案 1 :(得分:1)

最后我明白了。

在空白的Felix安装中:

g! bundlelevel -i 1
g! mvnrepo = http://repo2.maven.org/maven2
g! start $mvnrepo/commons-io/commons-io/1.4/commons-io-1.4.jar
g! start $mvnrepo/commons-fileupload/commons-fileupload/1.2.1/commons-fileupload-1.2.1.jar
g! start http://maven.ow2.org/maven2/org/json/org.ow2.chameleon.commons.json/20090911-0002/org.ow2.chameleon.commons.json-20090911-0002.jar
g! bundlelevel -i 5
g! start $mvnrepo/org/apache/felix/org.apache.felix.webconsole/4.2.0/org.apache.felix.webconsole-4.2.0.jar