Restlet is a massively under-used library for serving REST based requests over the web. It's fully OSGi compatible (unlike Jersey, which uses a bunch of com.sun
stuff under the covers) and has recently released version 2.0.
I recently posted a cryptic tweet in response to @Vogella's article on REST with Jersey, since Jersey has repeatedly failed in an OSGi runtime like environment. Using Restlet is a much smarter move if you want to serve REST based requests.
Here's the Hello World of Restlet:
import org.restlet.*; import org.restlet.data.*; import org.restlet.resource.*; public class Test { public static void main(String[] args) throws Exception { int port = 8080; new Server(Protocol.HTTP, port, HelloResource.class).start(); } public static class HelloResource extends ServerResource { @Get public String helloWorld() { return "Hello World"; } } }
Run that, with restlet-2.0.1.jar on your classpath, and then point your browser to http://localhost:8080.
There's a lot more documentation in the Restlet tutorial if you want to know more.