넷빈(Netbeans)6.8에서 JAX-RS 사용하기(from Database)
Written on 오전 5:54 by 강여사(J.Y.Kang)
JAX-RS는 웹 서비스의 Resource 포커스인 RESTful Web Service를 위한 자바의 신기술입니다. 본격적으로 지원되는 건 JavaEE6 버전이지만 부분적으로 EE5 에서도 사용 가능합니다.
그럼 넷빈에서는 어떻게 사용하는 지 알아봅시다.
이번 예제에서는 데이터베이스로부터 JAX-RS까지의 작업을 일괄로 할 예정입니다.
데이터베이스는 JavaDB인 Derby의 sample 을 사용할 예정입니다.
그럼 우선 JavaDB를 시작합니다.
서비스-데이터베이스-JavaDB 오른쪽 마우스 클릭 - 서버 시작 을 누릅니다
JAX-RS를 공급할 서버 프로그램을 만듭니다. (프로젝트 탭으로 다시 돌아와서)
new project (새 프로젝트) JavaWeb - Web Application 선택 , 다음 클릭 이름은 적당히(자동으로 잡히는 이름에 끝에 jaxrs 라고 줬습니다 --;)
경로도 적당히 , 다음 클릭
서버는 글래스피시 V3 도메인으로 잡고, JavaEE 6 web으로 잡았습니다.
(하지만, EE5로 잡으셔도 이 작업은 정상적으로 됩니다)
마침 클릭
이제 JAX-RS를 위한 작업을 시작하도록 하겠습니다.
이번 예제에서는 데이터베이스에서 RESTful Web Service 를 바로 만들 예정인지라, 해당 작업을 위해서는 persistence.xml 이 사전에 작업되어 있어야 합니다.
따라서 persistence.xml 을 먼저 작업합니다.
프로젝트에서 오른쪽 마우스 클릭 - new - other persistence(정보보전)카테고리에서 persistence unit (퍼시스턴스 유닛) 선택
다음 클릭
이름이 해당 프로젝트 명+PU 라고 붙습니다. 그냥 그대로
제공자가 toplink(default:이전)에서 EclipseLink(JPA 2.0-default-새거)로 바꿨군요. 뭐..그냥 그대로,
데이터소스는 jdbc/sample (WAS인 글래스피시에 기본적으로 작업된 데이터소스입니다. )주고,
이미 있는 데이터베이스 테이블을 사용할 예정인지라 테이블 생성 전략(Table Create Strategy)는 none (없음)으로..
다시 프로젝트에서 오른쪽 마우스 클릭 new - other 클릭
웹 서비스(Web Services)에 보면 RESTful Web Service from Database 가 있습니다.
데이터소스로 jdbc/sample을 지정하면 아래 사용가능한 테이블에 해당 스키마의 테이블들이 올라옵니다. 그럼 그 중 필요한 테이블들을 선택하면 됩니다
( 음.. 이 대목에서 캡처에 실수가..ㅋㅋ MYTABLE은 sample 에 원래 들어있는게 아니라 다른 예제때문에 들어간 거라는.. 넘 자세히 보시지 마세용~ ㅎㅎ) 아무튼 저는 모두 추가로 하고 다음 클릭
데이터베이스의 테이블에서 엔티티 클래스로의 전환이 표시 됩니다.
표시된 내용 확인 한후 적절한 패키지 명을 줍니다
(저는 그냥 a 라고 줬습니다) 다음 클릭 Helper 들이 만들어질 패키지 명 (헬퍼 클래스로는 service/와 converter/ 시리즈가 만들어집니다)
마침 클릭 그럼 다음과 같은 팝업창이 뜨는데, REST 리소스에 대한 구성입니다.
모든 REST 리소스들을 자동으로 넷빈이 생성해주는 첫번째가 디폴트고 이번엔 이걸로 그냥 작업했습니다.
경로 확인(/resource) OK 클릭
그럼 한참을 작업한 후 (자동 작업중 중간에 오류들이 올라올 수도 있습니다만, 그건 만들어지면서 서로 찾는 거라 다 끝나면 모든 오류없이 저렇게 구성되어 있습니다.
여기서 Source 패키지 안에 만들어진 java 를 열어 편집기에서 내용을 본 거고, 아래 RESTful WebServices 경로를 확장시켜 놓은 그림입니다.
이제 서버에 배포..Deploy
배포작업이 끝나면 해당 웹 서비스를 테스트 해볼 수가 있습니다.
프로젝트에서 오른쪽 마우스 - TEST RESTful Web Services 메뉴 클릭
그럼 웹 브라우저에 테스트 할 수 있도록 페이지가 연결됩니다.
여기서 원하는 내용을 테스트 하면 됩니다.
저는 아래쪽의 Product 에서 주욱 확장해서 productID 값 하나 넣는 걸로 테스트
productID 값으로 980001 을 주고 Test 버튼을 눌렀습니다.
아래 창에 해당 내용의 Resource URL 들이 REST가 공급되는 내용입니다.
나머지 사항들도 여러 뷰들로 확인해보시길.. 여기까지가 JAX-RS의 서버사이드 프로그래밍입니다.
이제 이걸로 클라이언트를 만들어 쓰면 되는데 가장 쉽고 뭔가 좀 그럴듯 한게 JMaki의 DOJO Table 이었는데 넷빈 6.8 에서 JMaki가 아직 정식 지원이 안되는 군요.. 음.. 노가다로 하기 시른데..쩝.. 노가다로 하려면야 JavaFX던 스윙이던 본인 맘대로 되지만..
아무튼.. 뭔가 올라오는 대로 글 만들어보도록 하겠습니다.