기본정보#

애노테이션#

JAX-RS 애노테이션#

  • @Path
실제 요청 URL을 나타낸다. 이 애노테이션은 클래스 선언부, 메서드 선언부 모두 위치할수 있으며 클래스 선언부에 @Path("/sample"), 메서드 선언부에 @Path("/xml") 이라고 설정한다면 해당 메서드의 호출은 /api/sample/xml 이 된다. 여기서 /api는 web.xml 파일에 설정된 Jersey URL이다.
  • @GET
get방식으로 데이터 추출, 선택가능한 옵션은 @PUT, @DELETE, @POST 등이 있다.
  • @Produces
출력하고자 하는 데이터 포맷을 정의한다. 여기서 사용하는 포맷은 "application/json", "text/xml" 이고 각각 json, xml 타입으로 데이터를 출력한다. 기타 선택가능한 옵션은 "application/atom+xml", "application/x-www-form-urlencoded", "application/octet-stream", "application/svg+xml", "application/xhtml+xml", "application/xml", "multipart/form-data", "text/html", "text/plain" 등이 있다.

Jersey 애노테이션#

  • @Singleton
싱글턴 객체임을 나타낸다. 그외 선택가능한 옵션은 @PerRequest 이다.

Jar파일#

샘플#

Resource샘플#

package openframework.rest;

import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import openframework.common.model.Family;
import openframework.common.model.Person;

import com.sun.jersey.spi.resource.Singleton;

@Singleton
@Path("/person")
public class PersonBean {
	@GET
	@Path("/json")
	@Produces("application/json")
	public Person getPersonMessageJson() {
		return getPerson();
	}

	@GET
	@Path("/xml")
	@Produces("text/xml")
	public Person getPersonMessageXml() {
		return getPerson();
	}

	@GET
	@Path("/text")
	@Produces("text/plain")
	public Person getPersonMessageTxt() {
		return getPerson();
	}

	private Person getPerson(){
		Person person = new Person();
		person.setId("123");
		person.setName("TEST");

		Family family = new Family();
		family.setName("ttt");
		family.setRelation("형");
		List<Family> familyList = new ArrayList<Family>();
		familyList.add(family);
		person.setFamilyList(familyList);

		return person;
	}
}

로컬로 요청할 경우 각각의 URL은 다음과 같이 된다.

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
png
jersey.png 1.8 kB 1 16-Dec-2008 15:55 DongGukLee
« This page (revision-1) was last changed on 16-Dec-2008 13:47 by DongGukLee