I think I'm pretty close. Here's the GuiceConfig I'm using:
public class GuiceServletConfig extends JerseyGuiceServletContextListener {
@Override
protected List<? extends Module> modules() {
AbstractModule module = new ServletModule() {
@Override
protected void configureServlets() {
// bind the rest resource.
bind(EngineResource.class);
/* bind jackson converters for JAXB/JSON serialization */
bind(MessageBodyReader.class).to(JacksonJaxbJsonProvider.class);
bind(MessageBodyWriter.class).to(JacksonJaxbJsonProvider.class);
// general use bindings.
bind(EngineInvoker.class).to(GroovyEngine.class);
bind(ResourceLoader.class).to(ActivititiResourceProvider.class);
serve("/rest/*").with(JerseySingletonServlet.class);
}
@Provides
@Singleton
ProcessEngine getProcessEngine() {
return ProcessEngines.getDefaultProcessEngine();
}
};
return Lists.newArrayList(module);
}
}
JerseySingletonServlet is just an extension of ServletContainer tagged as a Singleton. The problem is that the binding for the resource doesn't seem to be picked up. I get 404's for all the jersey paths.