Я пытаюсь реализовать спокойный веб-сервис, используя Jersey JAX-RS.Я встроил веб-сервер Jetty и хотел зарегистрировать все контроллеры на нем.
Я основывался на этом примере: https://nikgrozev.com/2014/10/16/rest-with-embedded-jetty-and-jersey-in-a-single-jar-step-by-step/
, в котором EntryPoint является контроллером:
@Path("/entry-point")
public class EntryPoint {
@GET
@Path("test")
@Produces(MediaType.TEXT_PLAIN)
public String test() {
return "Test";
}
}
и это регистрируется с использованием имени ключа " jersey.config.server.provider.classnames " следующим образом:
public class App {
public static void main(String[] args) throws Exception {
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
Server jettyServer = new Server(8080);
jettyServer.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(
org.glassfish.jersey.servlet.ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
// Tells the Jersey Servlet which REST service/class to load.
jerseyServlet.setInitParameter(
"jersey.config.server.provider.classnames",
EntryPoint.class.getCanonicalName());
try {
jettyServer.start();
jettyServer.join();
} finally {
jettyServer.destroy();
}
}
}
Как я могу зарегистрировать много контроллеров?
Если я добавлю другие классы контроллеров в качестве параметров, я не знаю, какое имя ключа я должен дать каждому, потому что только " jersey.config.server.provider.classnames " кажетсяработать и работает один раз.Благодаря.