<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.http.whiteboard</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.framework</artifactId>
<version>1.8.0</version>
</dependency>
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ExampleComponent extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
String name = req.getParameter("name");
resp.setContentType("text/html");
resp.setStatus(HttpServletResponse.SC_OK);
resp.getWriter().write("Hello, " + name + "!");
resp.getWriter().flush();
resp.getWriter().close();
}
}
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.service.http.HttpService;
import org.osgi.service.http.NamespaceException;
import org.osgi.util.tracker.ServiceTracker;
public class App implements BundleActivator {
private ServiceTracker<HttpService, HttpService> httpServiceTracker;
@Override
public void start(BundleContext context) throws Exception {
httpServiceTracker = new ServiceTracker<>(context, HttpService.class, null);
httpServiceTracker.open();
HttpService httpService = httpServiceTracker.waitForService(5000);
if (httpService != null) {
try {
httpService.registerServlet("/example", new ExampleComponent(), null, null);
e.printStackTrace();
}
} else {
System.err.println("HTTP service is not available.");
}
}
@Override
public void stop(BundleContext context) throws Exception {
if (httpServiceTracker != null) {
httpServiceTracker.close();
httpServiceTracker = null;
}
}
}
Bundle-SymbolicName: HttpWhiteboardExample
Bundle-Version: 1.0.0
Bundle-Activator: App
Import-Package: org.osgi.framework,org.osgi.service.http,org.osgi.service.http.whiteboard