5

Jerseyおよび/またはJava SEビルトインhttpサーバーを使用してJava SEでJAX-RS 2.0を使用して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) {
}

}

...しかし、グリズリーの依存関係を回避する

4

1 に答える 1

6

依存するだけなら

<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();
    }
}

サーバーのライフサイクルを制御するためのより良い方法があるかもしれませんが、今のところそれはできません。

于 2013-08-19T14:35:50.290 に答える