jersey

jersey

Jersey is the open source (under dual CDDL+GPL license) JAX-RS (JSR 311) Reference Implementation for building RESTful Web services.

ダウンロード

stableからjersey-0.8-ea.zipをダウンロード

インストール

C:\applicaitonなどにダウンロードしたファイルを展開。

動作確認

Eclipseでjerseyを動かしてみます。

  1. Javaプロジェクトとして、プロジェクト名 sample.jersey で作成
  2. sample.jersey/lib を作成して、そこへjerseyのライブラリ(C:\application\jersey-0.8-ea\lib にあるもの)を持ってきます。今回のサンプルでは、asm-3.1jar jersey.jar jsr311-api.jar servlet.jar だけあれば十分です。
  3. C:\application\jetty-6.1.11\lib にあるjetty-6.1.11.jarとjetty-util-6.1.11.jar、 を sample.jersey/lib へコピー

Jerseyドキュメントサンプル

jersey-0.8-ea/docs/getting-started.html にあるサンプル

ソース

  • Main
    package org.sssg.soft.sample.jersey;
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import com.sun.jersey.api.container.ContainerFactory;
    import com.sun.net.httpserver.HttpHandler;
    import com.sun.net.httpserver.HttpServer;
    public class Main {
     public static void main(String[] args) throws IOException {
       HttpHandler handler = ContainerFactory.createContainer(
           HttpHandler.class, org.sssg.soft.sample.jetty.resources.HelloWorldResource.class);
       HttpServer server = HttpServer.create(new InetSocketAddress(9998), 0);
       server.createContext("/", handler);
       server.setExecutor(null);
       server.start();
       System.out.println("Server running");
       System.out.println("Visit: http://localhost:9998/helloworld");
       System.out.println("Hit return to stop...");
       System.in.read();
       System.out.println("Stopping server");
       server.stop(0);
       System.out.println("Server stopped");
     }
  • HelloWorldResource
    package org.sssg.soft.sample.jetty.resources;
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.ProduceMime;
    
    @Path("/helloworld")
    public class HelloWorldResource {
     @GET
     @ProduceMime("text/plain")
     public String getClichedMessage() {
       return "Hello World";
     }
    }

動作方法

Main をJavaアプリケーションとして実行させます。ブラウザで、http://localhost:9998/helloworld へアクセスするとHelloWorldResourceの@GETのメソッドが呼ばれて、「Hello World」が表示されます。

Jetty版サンプル

ソース

  • SampleJersey
    package org.sssg.soft.sample.jetty;
    import org.mortbay.jetty.Connector;
    import org.mortbay.jetty.Server;
    import org.mortbay.jetty.nio.SelectChannelConnector;
    import org.mortbay.jetty.servlet.Context;
    import org.mortbay.jetty.servlet.ServletHolder;
    
    import com.sun.jersey.spi.container.servlet.ServletContainer;
    
    public class SampleJersey {
     public static void main(String[] args) throws Exception {
       Server server = new Server();
       Connector connector = new SelectChannelConnector();
       connector.setPort(8080);
       server.setConnectors(new Connector[] { connector });
       ServletHolder holder = new ServletHolder(ServletContainer.class);
       holder.setInitParameter(
           "com.sun.jersey.config.property.resourceConfigClass",
           "com.sun.jersey.api.core.PackagesResourceConfig");
       holder.setInitParameter("com.sun.jersey.config.property.packages",
           "org.sssg.soft.sample.jetty.resources");
       Context context = new Context(server, "/", Context.SESSIONS);
       context.addServlet(holder, "/*");
       server.start();
     }
    }
  • HelloWorldResource
    package org.sssg.soft.sample.jetty.resources;
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.ProduceMime;
    
    @Path("/helloworld")
    public class HelloWorldResource {
     @GET
     @ProduceMime("text/plain")
     public String getClichedMessage() {
       return "Hello World";
     }
    }

動作方法

SampleJersey をJavaアプリケーションとして実行させます。ブラウザで、http://localhost:8080/helloworld へアクセスするとHelloWorldResourceの@GETのメソッドが呼ばれて、「Hello World」が表示されます。

参考