java - Jersey 和 jax-rs RI2 - 缺少 HttpServerFactory

标签 java jersey jax-rs grizzly

我有一个简单的项目来测试 JAX-RS 服务。昨天我下载了 jersey-1.7.1 并使用 com.sun.jersey.api.container.httpserver.HttpServerFactory 和 com.sun.net.httpserver.HttpServer 创建了一个 http 服务器来从 eclipse 中测试我的服务(w/o 重重量容器)

今天,我下载了最新的 jersey jars (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 vs. jersey,API 1.x vs API 2.0,Glassfish 容器 v x.y 与 Tomcat,y 的 x 版本与 y 的 x2 版本,servlet 3.0 将具有此文件,您是否扩展应用程序!)

更新

使用 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 中可用。 :

ResourceConfig rc = new ResourceConfig(HelloWorldResource.class);
HttpServer server = JdkHttpServerFactory.createHttpServer(baseUri, rc);

无需调用 server.start()!

关于java - Jersey 和 jax-rs RI2 - 缺少 HttpServerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698899/

相关文章:

java - 部署使用 jersey api 创建的 war 文件

java - REST 流式 JSON 输出

java - 如何在 CXF JAX-RS 中将文件作为附件发布

java - 分阶段加载 spring 上下文

java - 检查 Google 的用户名和密码

java - JSF 2 操作完成后页面不刷新

jersey - Jersey :给定无效的请求正文时,返回400错误而不是500

java - 我该如何在 Scala 中做到这一点?

java - 将参数从 PrimeFaces 数据表传递到托管 bean

java - Jersey REST WS 错误 : "Missing dependency for method... at parameter at index X"