Home » Documentation » Apache Felix Subproject Documentation

Apache Felix Web Console

The Apache Felix Web Console is a simple tool to inspect and manage OSGi framework instances using your favourite Web Browser.



The Web Console only has a single required dependency on the framework: A running implementation of the OSGi Http Service Specification. The reason for this is, that the Web Console is implemented as a servlet (actually just a gateway servlet dispatching to Web Console plugins) which is registered with the Http Service. If your framework does not yet have a Http Service installed, you might select from a variety of such implementations. The following is just an incomplete list:

Apart from that Web Console has the following dependencies, which do not need to be satisfied. In this case the respective functionality is just missing.

Note, that the Apache Felix Declarative Services implementation is the only Apache Felix dependency contained in the Web Console. If you do not use the Apache Felix Declarative Services implementation, you just cannot inspect the declared components (because there is no official public API for this). Otherwise the Web Console perfectly operates without any problems.



The Web Console Bundle is available in two variants: A full variant and a bare variant. The full variant embeds three Java libraries which are not embedded in the bare variant. The bare variant expects the packages provided by those libraries to be exported from bundles installed in the framework.

The three libraries are :

Version 2.0.6 is the first release providing a bare variant. In this release both variants have the same symbolic name but a different file name: org.apache.felix.webconsole-2.0.6.jar for the full variant and org.apache.felix.webconsole-2.0.6-bare.jar for the bare variant. This is considered a bug and will be fixed in the next release as follows:



To install just use your favourite current means of installing new bundles in to the OSGi framework. For example using the Apache Felix shell console you might do:

> install http://mirror.switch.ch/mirror/apache/dist/felix/org.apache.felix.webconsole-2.0.6.jar
bundle x
> start x

where x is the bundle number printed by the Shell Console indicating the Bundle ID of the Web Console bundle.



The configuration of the Web Console consists of two parts: One part is the configuration of the Http Service defining at which host address (host and port number) the servlet container is accessible. This configuration is technically outside of the scope of the Web Console configuration. See below for more information and how this is influenced.

The second part of the Web Console configuration is the configuration of the console itself. The Web Console is configured using the OSGi Configuration Admin Service in that the Web Console registered a ManagedService with Service PID org.apache.felix.webconsole.internal.servlet.OsgiManager (of course you may well use the Web Console to edit the configuration of the Web Console itself).

The Web Console supports the following settings with their corresponding default values:

Property Default Value Description
manager.root /system/console The root path to the OSGi Management Console.
default.render bundles The name of the default configuration page when invoking the OSGi Management console.
realm OSGi Management Console The name of the HTTP Authentication Realm.
username admin The name of the user allowed to access the OSGi Management Console. To disable authentication clear this value.
password admin The password for the user allowed to access the OSGi Management Console.
plugins all plugins enabled The labels of the plugins enabled and displayed.
loglevel 2 Log level filter for the AbstractWebConsole log methods. This is an integer value matching the levels defined by the OSGi Log Service.
locale -- If set, this locale forces the localization to use this locale instead of the one requested by the web browser.

The default values apply if the respective property is missing from the configuration or if no configuration is provided at all.

Framework Properties

Some of the configuration properties supported through the OSGi Configuration Admin service can also be set globally and statically as framework properties. Such framework properties will also be considered actual default values for missing properties in Configuration Admin configuration as well as for the Metatype descriptor.

Framework Property Configuration Admin Property
felix.webconsole.manager.root manager.root
felix.webconsole.realm realm
felix.webconsole.username username
felix.webconsole.password password
felix.webconsole.loglevel loglevel
felix.webconsole.locale locale

Please note that setting any of these properties as framework property makes them visible to all bundles deployed. This is particularly to be considered in case of the felix.webconsole.password property (as for authentication, the use of a Web Console Security Provider is suggested anyway).

Configuration of the OSGi Http Service

As said above, the configuration of the OSGi Http Service used by the Web Console to register itself is outside of the scope of the Web Console. Lets just say, the OSGi Http Service specification defines a system propety -- org.osgi.service.http.port -- which may be set to define the port at which the Http Service should listen for HTTP requests. The respective Http Service implementation may define additional properties to define the actual interface on which to listen or to define a servlet context path.

By default it is probably safe to assume, that having set the org.osgi.service.http.port to a defined value, the Http Service implementation will listen on all interfaces for requests at the set port number and that no servlet context path actually exists. For example, given the org.osgi.service.http.port property is set to 8888 the Web Console in the local system can be reached at : http://localhost:8888/system/console, where the /system/console path is configured using the manager.root configuration property (see the Configuration section).

If you happen to deploy an OSGi framework instance inside a traditional web application and thus the Http Service implementation is actually a bridge into the existing servlet container (see for example Equinox in a Servlet Container or the Apache Sling Launchpad Web application), the host, port and context path are defined by your servlet container and web application deployment. For example, if the servlet container listens on host sample.org at port 8888 and the web application with your OSGi container is available in the /osgi context, the Web Console would be accessible at http://sample.org:8888/osgi/system/console.

Configuration Manager

The Configuration Manager is available via http://localhost:8888/system/console/configMgr. It display all OSGi services which can be configured.

Configuration factories

The Configuration Manager has special support for configuration factories by allowing to add new items via the "plus" buttons or editing or removing existing ones.

By default for each confguration factory item a unique ID is displayed, which is quite cryptic. Example: org.apache.felix.jaas.Configuration.factory.18a6be2a-3173-4120-8f56-77fabff7b7ea.

The developer of the service with configuration factory can define a special "name hint" configuration propery which defines a name template which is used to build the configuration factory item name when displayed in the Configuration Manager. The name of this property is webconsole.configurationFactory.nameHint. It allows referencing other service property names as placeholders by enclosing in brackets.

Example: webconsole.configurationFactory.nameHint = "{jaas.realmName}, {jaas.classname}" jaas.realmName = "myRealm" jaas.classname = "myClass"

In this case the Configuration Manager displays the name "myRealm, myClass" as display name for the configuration entry which is much more human-readable than the cryptic name. Please not that the OSGi configuration property webconsole.configurationFactory.nameHint must not be set to "private". It is never displayed by the Configuration Manager.



The Web Console only has very basic security at the moment supporting only HTTP Basic authentication. This security is enabled by default and may be disabled by simply clearing the username property.

To enhance the security of the Web Console you strongly encouraged to change at least the password for the admin user.

As of Web Console 3.1.0 this simple user setup can be extended by providing Web Console Security Provider. See that page for more information.

Browser Compliance


The goal of the Web Console is to support as big a range of Web Browsers as possible. As it stands now, Firefox (versions 2 and 3), Opera and Internet Explorer (versions 6 and 7) seem to be capable of using the Web Console. Should you encounter any problems with your particular browser, please report an issue for the Web Console in our issue tracking system (JIRA).

Beginning with Release 1.2.8 the Web Console is using JQuery to enhance the user experience. This should also help in keeping browser support on the broadest possible basis.

Extending the Web Console


The Web Console can be extended by registering an OSGi service for the interface javax.servlet.Servlet with the service property felix.webconsole.label set to the label (last segment in the URL) of the page. The respective service is called a Web Console Plugin or a plugin for short.

Please for to the Extending the Apache Felix Web Console for full documentation on extending the Apache Felix Web Console.



While the Web Console does not have a full featured and documented REST-ful API, most plugins try to follow REST approaches. For example the Bundles plugin is able to send information on all bundles or a single directly addressed bundle.

An attempt is made to document the current state of REST-like APIs at Web Console RESTful API



Should you have any questions using the Web Console, please send a note to one of our Mailing Lists.

Please report any issues with the Web Console in our issue tracking system (JIRA) and be sure to report for the Web Console component. See our [Issue Tracking] page for more details.



| !console-bundles.png|thumbnail! | !console-bundles-details.png|thumbnail! | !console-components.png|thumbnail! | | Bundle List | Bundle Details | Declarative Services Components (requires Apache Felix SCR) | | !console-config.png|thumbnail! | !console-status.png|thumbnail! | !console-system-info.png|thumbnail! | | Configuration Admin | System Status | System Information |

Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.