Embedding an HTTP server in Equinox
Equinox provides two complete implementations of the OSGi Http Service suitable for embedding.
Very small footprint suitable for resource constrained environments.
API compatible with Servlet 2.4 but provides limited support beyond Servlet API 2.1.
Implemented using Jetty as the underlying engine for providing Servlet API 2.4 Support.
The following bundles are involved in putting together an Http Service environment:
- org.mortbay.jetty (v5_1_11 - from Orbit Depot)
- org.apache.commons.logging (v1_0_4 - from Orbit Depot)
- javax.servlet (v2_4 - from Orbit Depot)
- [optional] org.eclipse.equinox.http.registry
Provides servlet, resource, and httpcontext extension points based on an OSGi HttpService.
The org.eclipse.equinox.* projects can be retrieved from the equinox CVS depot.
The 3rd party bundles can be retrieved from the Orbit CVS Depott.
(e.g. cvsroot/tools/org.eclipse.orbit/javax.servlet [branch v2_4])]
[Suggested] If you're using Eclipse it might be far simpler to "import" a team project set with everything needed.
Equinox Http Service: (regular) or (proxied)
Jetty-based Http Service: (regular) or (proxied)
- To build and use these projects you'll need to be running the Eclipse SDK 3.2 or later.
Writing the server application
See the Writing a bundle-based server application for information on how to write a bundle based web application.
Running the server
To run the server and your application, carry out the following steps:
- Create an OSGi Framework launch configuration Run > Run... > OSGi Framework
- In the Plug-ins tab, de-select all the bundles
- Select the bundles listed above and your application (e.g., com.example.http.application)
- Run the launch configuration
- Launch your favorite web browser and access the URLs