Das PAX Web Bundle trägt in seinem Inneren ein Jetty Webserver. Mit Hilfe des Bundles kann auf die volle Funktionalität eines J2EE konformen Webservers, innerhalb eines OSGI-Containers, zugegriffen werden. Dabei wird eine Standardimplementierung des HTTPService-Interfaces sowie eine Klasse namens Webcontainer zur Verfügung gestellt. Die Standardimplementierung ist sehr rudimentär. Der Webcontainer-Dienst bietet hingegen alle J2EE-Servlet Features.
Der Zugriff auf das Objekt erfolgt folgenderweise:
bundleContext.getServiceReference( "org.ops4j.pax.web.service.WebContainer" );Nachfolgend können Servlet,Filter,Jsp Seiten usw. konfiguriert werden.
Beispiel:
public class Activator implements BundleActivator {
MyServlet myServlet = null;
MyFilter myFilter = null;
public void start(BundleContext bundleContext) throws Exception {
WebContainer webContainer = (WebContainer)bundleContext.getServiceReference( "org.ops4j.pax.web.service.WebContainer");
HttpContext context = webContainer.createHttpContext();
myServlet = new MyServlet();
webContainer.registerServlet( Servlet myServlet, new String{"/myServlet"}, null, httpContext);
myFilter = new MyFilter();
webContainer.registerFilter( myFilter, new String{"/*"}, null, null, httpContext );
}
public void stop(BundleContext context) throws Exception {
webContainer.unregisterServlet(myServlet);
webContainer.unregisterFilter(myFilter);
}
}
Beim Installieren des Bundles wird ein Servlet und ein Filter registriert. Beim Deinstallieren werden sie wieder unregistriert.
Viele Grüße
Rafael Sobek
Technorati Tags: OSGI PAX Web Bundle

Hi,
das klappt alles auch soweit....ich würde jetzt nur gerne eine absolute Pfad-Angabe nutzen....z.B. "C:\Temp\Hello.jsp"
Er beschert sich nicht wenn ich das tu. Dennoch schaff ich es nicht auf die JSP zuzugreugen...sobald eine keine relative Pfadangabe mache.
Ideen ?