자바 restful 오픈 API JERSEY 사용 방법 입니다.
아래는 관련 사이트 정보 입니다.
사용법은 비교적 간단 합니다.
사이트에서 라이브러리를 다운 받거나
첨부 파일의 라이브러리 추가 후
web.xml 파일에
<display-name>sample1.RestScoreBoard</display-name>
<servlet>
<servlet-name>ScoreRestService</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name >com.sun.jersey.config.property.packages</param-name>
<param-value>com.test.restful.action.test.rest</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ScoreRestService</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
자바 엑션 파일
package com.test.restful.action.test.rest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.ResourceBundle;
import java.util.Calendar;
@Path("/misuse")
public class MisuseRestService {
@GET
@Produces(MediaType.APPLICATION_JSON) 리턴 타입은 종류가 많다
@Path("{type}/{pram}")
public String getMisuse(@PathParam("type") final String type,@PathParam("pram") final String pram) throws Exception{
StringBuffer jsonStr = new StringBuffer();
if (type.equals("IF")){ // 성능정보
jsonStr.append(insertIf(pram));
String tossSt = jsonStr.toString();
//System.out.println("=====jsonStr===="+jsonStr.toString());
return tossSt;
}
호출시에는 web.xml에서 설정 한것 처럼 url 형태로 호출 됩니다.
http://localhost:8080/rest/misuse/IF/test
type 값이 IF
pram 값이 test 입니다.
발견된 문제 점으로는 url 형식으로 값을 전달 받기 때문에 파라메터 값에 문자열 / 같은 문자가 있으면
경로로 인식하는 문제가 있는데 아직 해결이 안된듯 합니다.
저 같은 경우는 우선 급한대로 문자열을 잘 사용 하지 않는 특수문자열 조합으로
치환하여 해결 하였으나.... 빨리 해결 조치 되었으면 좋겠네요.
jersey 버전 2.x 이상 버전에서는 위에 문제가 해결 된줄 알고 버전 업을 해 보았으나 잘 안되네요
2.x 버전 사용 하실때는 web.xml에서
설정 값이 기존
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 에서
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>로 변경 됬습니다.
'Work > tomcat' 카테고리의 다른 글
톰켓 access Log 설정 (0) | 2013.08.29 |
---|---|
로그인 화면만 https 적용 하기 작업 정리 내역..... (0) | 2012.12.13 |
리눅스 서버 tomcat ssl 적용 https 사용 하기 (0) | 2011.12.15 |
Catalina.start: LifecycleException: null.open: java.net.BindException: 오류 (0) | 2011.12.02 |
xss filter 적용 (1) | 2011.12.02 |