Вы можете использовать jetty
плюс guice
плюс jersey
в качестве вашей платформы.
Для этого вам нужно создать класс Bootstrap
с методом main
.В основном методе configure jetty
Server server = new Server(port);
Context root = new Context(server, "/", Context.SESSIONS);
root.addEventListener(new GuiceServletConfig());
root.addFilter(GuiceFilter.class, "/*", 0);
GuiceConfiguration
отвечает за jersey
конфигурацию
public class GuiceConfiguration extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
return Guice.createInjector(new ServletModule() {
@Override
protected void configureServlets() {
install(new RestServicesModule());
bind(MessageBodyReader.class).to(JacksonJsonProvider.class);
bind(MessageBodyWriter.class).to(JacksonJsonProvider.class);
serve("*").with(GuiceContainer.class, ImmutableMap.of("com.sun.jersey.config.feature.Trace",
"true"));
}
});
}
}
Далее необходимо создать службы отдыха и связать их в RestServicesModule
.
Например, вы можете создать HelloWorld
сервис:
@Path("/hello")
public class HelloWorld {
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Path("{name}")
public Person showPerson(@PathParam("name") String name) {
return new Person(name);
}
}
А человек - это простой POJO.
@XmlRootElement
public static class Person {
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Последний шаг - регистрацияслужба в RestServicesModule
class RestServicesModule extends AbstractModule {
protected void configure() {
bind(HelloWorld.class);
}
}