1

現在、Grizzly-Framework 2.3.6 を試しています。私は次のmaven依存関係を使用しています:

    <dependency>
        <groupId>org.glassfish.grizzly</groupId>
        <artifactId>grizzly-framework</artifactId>
        <version>2.3.6</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.grizzly</groupId>
        <artifactId>grizzly-http-server</artifactId>
        <version>2.3.6</version>
    </dependency>

次のコード例でサーバーを起動できます。

HttpServer server = HttpServer.createSimpleServer();
try {
    server.start();
    addJaxRS(server);
    System.out.println("Press any key to stop the server...");
    System.in.read();
} catch (Exception e) {
    System.err.println(e);
} 

次の JAX-RS クラスを追加しました。

@Path("/helloworld")
public class HelloWorldResource {
    @GET 
    @Produces("text/plain")
    public String getClichedMessage() {
        return "Hello World";
    }
}

私の質問は、Grizzly に HelloWorldRessoruce を JAX-RS リソースとして追加するように指示するにはどうすればよいですか?

4

1 に答える 1

6

依存関係をグリズリーバージョン2.2.16を含む「jersey-grizzly2」に変更することで解決策を見つけました

<dependencies>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-grizzly2</artifactId>
            <version>1.17.1</version>
        </dependency>
</dependencies>

次のように、JAX-RS リソースを使用して grizzly を開始できるようになりました。

import java.io.IOException;
import org.glassfish.grizzly.http.server.HttpServer;
import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory;
import com.sun.jersey.api.core.PackagesResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;
public class Main {
    public static void main(String[] args) throws IOException {
        // HttpServer server = HttpServer.createSimpleServer();
        // create jersey-grizzly server
        ResourceConfig rc = new PackagesResourceConfig("my.resources");
        HttpServer server = GrizzlyServerFactory.createHttpServer(
                "http://localhost:8080", rc);
        try {
            server.start();
            System.out.println("Press any key to stop the server...");
            System.in.read();
        } catch (Exception e) {
            System.err.println(e);
        }
    }
}

でも最初はジャージはグリズリーの一部だと思っていた?

于 2013-10-20T14:39:34.570 に答える