jersey started

来源:互联网 发布:师洋淘宝 编辑:程序博客网 时间:2024/04/30 18:00

Getting Started

Getting started with Jersey is very easy. First, it is necessarydepend on the correct Jersey artifacts as described in thedependences document.

Maven developers require a dependency on the jersey-servermodule, the grizzly-servlet-webservermodule and optionally for WADL support if using Java SE 5 thejaxb-implmodule.

Non-maven developers require:

grizzly-servlet-webserver.jar,jersey-server.jar,jersey-core.jar,jsr311-api.jar,asm.jar

and optionally for WADL support if using Java SE 5:

jaxb-impl.jar,jaxb-api.jar,activation.jar,stax-api.jar

Then, create a new project (using your favourite IDE or justant/maven) and add the dependences. (For those who want to skip thecreation of their own project take a look at the last sectionof this document.)

Creating a root resource

Create the following Java class in your project:

 1    // The Java class will be hosted at the URI path "/helloworld"
2 @Path("/helloworld")
3 public class HelloWorldResource {
4
5 // The Java method will process HTTP GET requests
6 @GET
7 // The Java method will produce content identified by the MIME Media
8 // type "text/plain"
9 @Produces("text/plain")
10 public String getClichedMessage() {
11 // Return some cliched textual content
12 return "Hello World";
13 }
14 }

The HelloWorldResource class is a very simple Webresource. The URI path of the resource is "/helloworld"(line 2), it supports the HTTP GET method (line 6) and producescliched textual content (line 12) of the MIME media type "text/plain"(line 9).

Notice the use of Java annotations to declare the URI path, theHTTP method and the media type. This is a key feature of JSR 311.

Deploying the root resource

The root resource will be deployed using the Grizzly Webcontainer.

Create the following Java class in your project:

 1    public class Main {
2
3 public static void main(String[] args) throws IOException {
4
5 final String baseUri = "http://localhost:9998/";
6 final Map<String, String> initParams = new HashMap<String, String>();
7
8 initParams.put("com.sun.jersey.config.property.packages",
9 "com.sun.jersey.samples.helloworld.resources");

10
11 System.out.println("Starting grizzly...");
12 SelectorThread threadSelector = GrizzlyWebContainerFactory.create(
13 baseUri, initParams);
14 System.out.println(String.format(
15 "Jersey app started with WADL available at %sapplication.wadl/n” +
16 “Try out %shelloworld/nHit enter to stop it...", baseUri, baseUri));
17 System.in.read();
18 threadSelector.stopEndpoint();
19 System.exit(0);
20 }
21 }

The Main class deploys the HelloWorldResourceusing the Grizzly Web container.

Lines 8 to 9 creates an initialization parameter that informs theJersey runtime where to search for root resource classes to bedeployed. In this case it assumes the root resource class in thepackage com.sun.jersey.samples.helloworld.resources(or in a sub-package of).

Lines 12 to 13 deploys the root resource to the base URI“"http://localhost:9998/”and returns a Grizzly SelectorThread. The complete URI of the HelloWorld root resource is "http://localhost:9998/helloworld".

Notice that no deployment descriptors were needed and the rootresource was setup in a few statements of Java code.

Testing the root resource

Goto the URI http://localhost:9998/helloworldin your favourite browser.

Or, from the command line use curl:

    > curl http://localhost:9998/helloworld

Here's one I created earlier

The example code presented above is shipped as the HelloWorldsample in the Java.Net maven repo.