2014-01-19 5 views
4

Maven, Apache Tomcat 7.0, Eclipse IDE를 사용하여 기본 RESTful 애플리케이션을 만들려고합니다. jersey-server, jersey-client, jersey-grizzly 등과 같은 maven 종속성의 사용법에 대해 Google에서 사용할 수있는 샘플 코드 중 일부를 보았습니다.RESTful 애플리케이션에서 jersey-server, jersey-client, jersey-grizzly의 목적

이러한 종속성의 목적을 알고 싶습니다. 왜 우리는 그들을 추가하고, 그것이 무엇이며, 어떻게 작동합니까?

저는 몇 개의 저지 javadocs를 참조했지만 명확한 그림을 얻을 수 없습니다. 같은 것에 대한 간단한 설명을 제공해주십시오. 간단히 말해서 사전

답변

4

에서

감사합니다 :이 예처럼 REST API를 노출 저지 서버를 사용

@Path("/hello") 
class RESTDispatcher { 

    @GET 
    @Path("/world") 
    public String helloWorld() { 
     return "Hello world!" 
    } 
} 

당신은

public static String callRestAPI(String[] args) { 
    Invocation.Builder builder = ClientBuilder 
           .newClient() 
           .target("http://localhost/hello/world"); 
    Response response = builder.method("GET"); 
    String result = response.readEntity(String.class); 
    return result; 
    //will return "Hello world!" with our previous example deployed on localhost 
} 
REST API를 소비 저지 - 클라이언트를 사용하여

저지 - 그리즐리 단지 저지를 그리즐리 서버와 함께 사용하는 것.

UPDATE 나는 우리가 REST API 누군가에 의해 노출 호출 할 필요가있을 때 우리가 저지 클라이언트마다 필요하다는 것을 의미
.
jersey-client 사용 예에서 localhost에 배포 된 첫 번째 예제를 사용합니다. , HTTP GET 요청을 호출해야 경로 /인사/세계의 방법 결과 @Path 클래스의@Path이 (@GET 주석을 참조) 첫 번째 예제의 주석을 참조하십시오.
그래서 우리는 우리가이 목표를 호출

Invocation.Builder builder = ClientBuilder 
          .newClient() 
          .target("http://localhost/hello/world"); 

그 목표 REST 클라이언트를 만들 HTTP GET 요청

다음
Response response = builder.method("GET"); 

우리가 알고있는이 API 응답은 엔터티를 포함 (인 helloWorld 방법의 서명에서) 이를 String으로 인스턴스화 할 수 있습니다. 그래서 우리는 그것을 "result"변수로 읽어들입니다.

응답의 readEntity 메소드의 매개 변수로 대상 직렬화 역 직렬화를 제공해야합니다.
또한 REST API가 String 만 반환하는 것은 일반적이지 않습니다. 오히려 JSON 또는 XML을 반환합니다. JAXB를 사용하여 엔티티를 읽을 수있는 경우 Jersey는 완벽하게 작동합니다. this part of documentation for XML supportthis for JSON을 확인하십시오.

+0

답장을 보내 주셔서 감사합니다 ..... jersey-client "restes"API에 대해 자세히 설명해 주시면 도움이 될 것입니다. – RamSri

+0

당신은 오신 것을 환영합니다. 업데이트를 참조하십시오. – mkrakhin