我有一个简单的项目来测试 JAX-RS 服务。昨天我下载了 jersey-1.7.1 并使用 com.sun.jersey.api.container.httpserver.HttpServerFactory 和 com.sun.net.httpserver.HttpServer 创建一个 http 服务器来从 eclipse 内部测试我的服务(没有繁重的重量容器)
今天,我下载了最新的 jersey jar (jaxrs-ri),但 HttpServerFactory 丢失了。看起来他们删除了 1.7.1 => 2.0 之间的类,但我在弃用部分找不到它。我在 API 部分看到 grizzly2 类(也许这就是我现在应该使用的),但是 jaxrs-ri 包中的 jar 都没有提供这些类。我下载了 jersey-grizzly 1.12 jar,但它只有 com/sun/jersey/server/impl/container/grizzly2/GrizzlyContainer 类,没有实现。
所以向善良的灵魂提问
1 - 使用来自 jersey 下载页面的最新 jaxrs-ri jar,如果 1.7.1 方式已被弃用,那么创建一个简单的 http 服务器以从命令行进行测试的推荐方法是什么。
要下载/包含哪些 jar 包,也许还有一个简短的代码示例?
2 - 关于使用 java 创建简单的 REST 服务的整个文档是一团糟。那么如何找到正确的信息呢?
(真的,这不是一个笑话。也许这需要一篇单独的博客文章 - 只需看看混乱的情况、更改的 API、没有有关已弃用功能的信息、实现差异,例如 CXF 与 jersey、API 1.x 与 API 2.0, Glassfish 容器 v x.y 与 Tomcat,y 的版本 x 与 y 的版本 x2,servlet 3.0 会有此文件,您是否扩展应用程序!)
Update
JDKHttp 服务器的工作示例
package test.jersey;
import java.net.URI;
import com.sun.net.httpserver.HttpServer;
import org.glassfish.jersey.jdkhttp.JdkHttpServerFactory ;
import org.glassfish.jersey.server.ResourceConfig;
public class ConsoleServerV2 {
static final String BASE_URI = "http://localhost:9099/";
public static void main(String[] args) throws Exception {
HttpServer server = null ;
ResourceConfig rc = new ResourceConfig(rest.Service.class);
URI endpoint = new URI(BASE_URI);
server = JdkHttpServerFactory.createHttpServer(endpoint,rc);
System.out.println("console v2.0 : Press Enter to stop the server. ");
System.in.read();
server.stop(0);
}
}
您可以使用 JdkHttpServerFactory,它可以在jersey-container-jdk-http-2.0.jar http://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-jdk-http/2.0/jersey-container-jdk-http-2.0.jar:
ResourceConfig rc = new ResourceConfig(HelloWorldResource.class);
HttpServer server = JdkHttpServerFactory.createHttpServer(baseUri, rc);
无需调用server.start()!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)