Java 将Jetty与JAX-RS集成
在对web和Stackoverflow进行了彻底的搜索之后,我仍然在努力找出如何将Jersey提供的RESTlet风格的界面与Jetty集成起来Java 将Jetty与JAX-RS集成,java,servlets,jetty,jersey,jax-rs,Java,Servlets,Jetty,Jersey,Jax Rs,在对web和Stackoverflow进行了彻底的搜索之后,我仍然在努力找出如何将Jersey提供的RESTlet风格的界面与Jetty集成起来 我已经安装并运行了Jetty服务器,这样的球衣似乎也很容易使用,有人知道如何将两者结合起来吗?任何具体的链接都会有所帮助——我对servlet编程也有点陌生。不久前,我使用Jetty和Jersey创建了一个应用程序。这只是一个标准的网络应用程序,真的: web.xml: <servlet> <servlet-name>r
我已经安装并运行了Jetty服务器,这样的球衣似乎也很容易使用,有人知道如何将两者结合起来吗?任何具体的链接都会有所帮助——我对servlet编程也有点陌生。不久前,我使用Jetty和Jersey创建了一个应用程序。这只是一个标准的网络应用程序,真的: web.xml:
<servlet>
<servlet-name>rest.service</servlet-name>
<servlet-class>
com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
<param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>your.package.with.jersey.resources</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rest.service</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
码头起动器:
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:
<!-- Jetty -->
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-management</artifactId>
</dependency>
<!-- Jersey (JAX-RS) -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-test-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-servlet-webserver</artifactId>
</dependency>
(...)
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
org.mortbay.jetty
码头
org.mortbay.jetty
码头
org.mortbay.jetty
码头管理
泽西岛
泽西服务器
com.sun.jersey.contribs
泽西之春
javax.ws.rs
jsr311 api
泽西岛
jersey测试框架
测试
灰熊
grizzly servlet Web服务器
(...)
org.mortbay.jetty
maven jetty插件
希望这些片段为您指明了正确的方向 您可能想看看Jetty、Jersey、Jackson、Logback/Log4j/JUL/CJL和JDBI之间的开箱即用的集成,所有这些都很好地使用了Yammer度量。谢谢,这或多或少就是我想要的——尽管我将一些.xml内容抽象到Java代码中——让我只需要很少的一件事!您还需要web.xml中的ContextLoaderListener和web.inf中的applicationContext.xml,为什么您在其中依赖grizzly?@stainear这是一个很好的问题。两个选项中的任何一个:1)我在添加此依赖项时发现它是有效的,因为某种原因我忘记了2)我复制粘贴的依赖项,并且没有费心检查每个依赖项。如果您发现它没有灰熊也能正常工作,请告诉我们。谢谢@pk11您介意将您从web.xml中提取的内容共享到java中吗?我很想看到,因为目前我的服务器没有加载jersey资源,除了web.xml没有正确加载之外,我找不到原因。我宁愿使用java来实现这一点,因为它更易于移植。
<!-- Jetty -->
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-management</artifactId>
</dependency>
<!-- Jersey (JAX-RS) -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-test-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-servlet-webserver</artifactId>
</dependency>
(...)
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>