11

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

今天,我下载了最新的 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 jars,如果 1.7.1 方式已被弃用,推荐的方式是创建一个简单的 http 服务器以从命令行进行测试。要下载/包含哪些罐子,也许还有一个简短的代码示例?

2 - 使用 java 创建简单 REST 服务的整个文档非常混乱。那么如何找到正确的信息呢?

(真的,这不是玩笑。也许这需要单独的博客文章 - 只看混乱,更改的 API,没有关于弃用功能的信息,实现差异,例如 CXF 与球衣,API 1.x 与 API 2.0, Glassfish 容器 v xy 与 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);

    }
}
4

3 回答 3

10

您可以使用jersey-container-jdk-http-2.0.jar中提供的 JdkHttpServerFactory :

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

无需调用 server.start()!

于 2013-07-18T13:28:39.210 回答
2

请试试这个 Grizzly 2 捆绑包 http://search.maven.org/remotecontent?filepath=org/glassfish/grizzly/grizzly-http-servlet-server/2.3.3/grizzly-http-servlet-server-2.3.3。罐

于 2013-07-17T22:36:31.263 回答
0

您也可以从这里获取捆绑包 http://mvnrepository.com/artifact/com.sun.jersey/jersey-server/1.2 只需将其添加到您的库文件夹,然后在项目中右键单击它并选择“添加为图书馆。”

于 2014-03-06T01:53:24.323 回答