2
votes

I 'm trying to install and run Apache Felix Web Management Console ( 4.2.0 ) in Apache Felix 4.2.1 but it does not work.

I have installed Felix Http Jetty 2.2.1 bundle, Felic Configuration Admin Service 1.8.0 bundle, Log Service 1.0.1 bundle, EventAdmin 1.3.2 bundle and Felix Web Management Console 4.2.0

When I try to start the Web Management Console it says :

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)"

I'm using 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 [email protected]: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!

Regards

2
By the way, I'm NOT using Eclipse.JonathanVila

2 Answers

3
votes

I had similar issues, I resolved them by clearing up the Felix installation, then I started the Felix from scratch, this means, I had something like this on the 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! 

So, on the console, just add the following command

list -v

It will give you the list of available packages, so, just look for the Webconsole package name and run this (always on the Gogo console):

g! deploy org.apache.felix.webconsole

This will download the required libraries, and print the following on the Console:

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! 

So, now, if you run lb (list bundles command)

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!

So, now, just look for the bundles "HTTP Service" and "Apache Felix Web Management Console" and start them:

g! start 10
g! start 12

And finally, just go the the path (default port is 8080):

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

By the way, you can change the port on the config.properties (in Felix) by just adding the following parameter:

org.osgi.service.http.port=28372

Hope this may help somebody else...

1
votes

Finally I get it.

In a blank Felix installation:

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