如果您真的想使用Java进行REST,建议您使用JAX-RS实现(RESTeasy,Jersey …)。
如果您主要关注对servlet容器的依赖,则可以使用JAX-RS
RuntimeDelegate将应用程序注册为JAX-
RS端点。
// Using grizzly as the underlaying serverSelectorThread st = RuntimeDelegate.createEndpoint(new MyApplication(), SelectorThread.class);st.startEndpoint();// Wait...st.stopEndpoint();
关于
GZIP编码,每个JAX-
RS提供程序都有不同的方法。Jersey提供了一个过滤器来透明地完成编码。RESTEasy
为此提供了一个注释。
编辑
我做了一些小测试。假设您正在使用Maven,那么以下两件事绝对对您有用。
使用 Jersey + SimpleServer :
public static void main( String[] args ) throws Exception { java.io.Closeable server = null; try { // Creates a server and listens on the address below. // Scans classpath for JAX-RS resources server = SimpleServerFactory.create("http://localhost:5555"); System.out.println("Press any key to stop the service..."); System.in.read(); } finally { try { if (server != null) { server.close(); } } finally { ; } }}
与Maven依赖
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.10</version></dependency><dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-simple-server</artifactId> <version>1.10</version></dependency>
或使用 Jersey + Grizzly2 :
public static void main(String[] args) throws Exception { HttpServer server = null; try { server = GrizzlyServerFactory.createHttpServer("http://localhost:5555"); System.out.println("Press any key to stop the service..."); System.in.read(); } finally { try { if (server != null) { server.stop(); } } finally { ; } }}
与Maven依赖
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.10</version></dependency><dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-grizzly2</artifactId> <version>1.10</version></dependency>
老实说,我也无法使
RuntimeDelegate示例工作。当然,也有一种方法可以立即启动RESTEasy,但是目前我还不记得它。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)