使用Java SE发布REST服务

时间:2013-08-19 13:08:03

标签: java rest

我正在尝试使用Jersey和/或Java SE内置http服务器,使用JAX-RS 2.0和Java SE发布我的RESTful Web服务的简单方法。

我想将我的依赖项保持在最低限度,所以我想避免使用灰熊,也不想使用任何外部应用程序服务器。

您能指出如何发布符合此要求的休息服务吗?

提前致谢,

我的意思是要实现这样的事情:

public static void main(String args[]) {
    try {
        final HttpServer server = GrizzlyHttpServerFactory.createHttpServer("http://localhost:8080/calculator/",new ResourceConfig(SumEndpoint.class));

        System.in.read();
        server.stop();

} catch (IOException ex) {
}

}

......但避免了灰熊依赖

1 个答案:

答案 0 :(得分:5)

如果你只是依赖

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-jdk-http</artifactId>
    <version>2.2</version>
</dependency>

然后你可以启动服务器

JdkHttpServerFactory.createHttpServer(URI.create("http://localhost:8090/root"),
        new MyApplication());

MyApplication扩展ResourceConfig以获取资源扫描。

@ApplicationPath("/")
public class MyApplication extends ResourceConfig {

    public MyApplication() {
        packages("...");
    }
    @GET
    @Produces("text/plain")
    public Response foo() {

        return Response.ok("Hey, it's working!\n").build();
    }
}

可能有更好的方法来控制服务器生命周期,但暂时还没有这样做。