将Jetty与JAX-RS-Jersey集成

在详尽搜索了Web和Stackoverflow之后,我仍然在试图弄清楚如何集成Jersey和Jetty提供的RESTlet样式接口。

我的Jetty服务器已启动并运行,因此Jersey似乎也很容易使用,有没有人知道如何将两者结合在一起? 任何具体的链接都会有所帮助 – 我对servlet编程也有点新意。

我曾经使用Jetty和Jersey创建了一个应用程序。 它只是一个标准的webapp:

web.xml中:

 rest.service  com.sun.jersey.spi.spring.container.servlet.SpringServlet  com.sun.jersey.config.property.resourceConfigClass com.sun.jersey.api.core.PackagesResourceConfig   com.sun.jersey.config.property.packages your.package.with.jersey.resources  1   rest.service /service/*  

rest资源:

 package your.package.with.jersey.resources; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.SecurityContext; @Path("login") public class LoginResource { @Context private SecurityContext security; @GET @Produces(MediaType.APPLICATION_XML) public String login() { String email = security.getUserPrincipal().getName(); return "ok"; } } 

docker起动器:

 public class StartJetty { public static void main(String[] args) throws Exception { Server server = new Server(); SocketConnector connector = new SocketConnector(); // Set some timeout options to make debugging easier. connector.setMaxIdleTime(1000 * 60 * 60); connector.setSoLingerTime(-1); connector.setPort(8080); server.setConnectors(new Connector[] { connector }); WebAppContext bb = new WebAppContext(); bb.setServer(server); bb.setContextPath("/"); bb.setWar("src/main/webapp"); server.addHandler(bb); try { System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP"); server.start(); while (System.in.available() == 0) { Thread.sleep(5000); } server.stop(); server.join(); } catch (Exception e) { e.printStackTrace(); System.exit(100); } } } 

pom.xml中:

   org.mortbay.jetty jetty   org.mortbay.jetty jetty-util   org.mortbay.jetty jetty-management    com.sun.jersey jersey-server   com.sun.jersey.contribs jersey-spring   javax.ws.rs jsr311-api   com.sun.jersey jersey-test-framework test   com.sun.grizzly grizzly-servlet-webserver  (...)  org.mortbay.jetty maven-jetty-plugin  

希望这些片段能指向正确的方向。

您可能希望看看Dropwizard在Jetty,Jersey,Jackson,Logback / Log4j / JUL / CJL和JDBI之间进行开箱即用的集成,所有这些都很好地配备了Yammer Metrics。