Apache Karaf supports HTTP resources artifact. It's very simple bundle that just register an empty resource service.
The actual resources (images, static HTML pages, ...) are in a folder in the bundle. The resource service properties configures the location of the resource and the HTTP context (pattern or HTTP location) where to expose these resources.
The build uses Apache Maven. Simply use:
mvn clean install
On a running Karaf instance, register the features repository:
karaf@root()> feature:repo-add mvn:org.apache.karaf.examples/karaf-http-resource-example-features/LATEST/xml
Then, you can install the karaf-http-resource-example-whiteboard
feature:
karaf@root()> feature:install karaf-http-resource-example-whiteboard
The karaf-http-resource-example-whiteboard
registers HTTP resource pattern.
You can access the resources using your browser on http://localhost:8181/example/index.html URL.
Optionally, you can install pax-web-karaf
feature to get web:servlet-list
command and see the ReesourceServlet
deployed:
karaf@root()> feature:install pax-web-karaf
then you can use web:servlet-list
command:
karaf@root()> web:servlet-list Bundle ID │ Name │ Class │ Context Path(s) │ URLs │ Type │ Context Filter ──────────┼──────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────┼─────────────────┼────────────┼────────────┼──────────────────────────────────────────── 55 │ default-a60a5bcb-236b-4db5-b98f-41bf3845a7cd │ org.ops4j.pax.web.service.jetty.internal.web.JettyResourceServlet │ / │ /example/* │ Whiteboard │ (osgi.http.whiteboard.context.name=default)