본문 바로가기

IT for developer/Jackrabbit

Jackrabbit 시작하기

이번 프로젝트에 처음으로 jackrabbit을 사용했다.

사용한지 얼마 안되고 검색쪽을 개발해서 심도깊게 정리가 힘들듯 하다;;

Jackrabbit 시작하기

아파치 Jackrabbit JSR-170(JCR)을 완벽히 지원하는 컨텐츠 저장기능을 구현한 것임.

http://jackrabbit.apache.org 참조

 

다운로드.

http://jackrabbit.apache.org/downloads.html

 

Jackrabbit Web Application

jackrabbit-webapp-1.4.war

 

설치

간편하게 하기 위해서 CLASSPATH WEB-INF/lib에 있는 jar들을 모두 포함하면 된다.

최근부터 Jcr-api.jar 파일은 포함되어 있지 않으므로 별도로 받아서 저장해야 한다.

 

Jcr-api.jar 왜 파일을 별도로 받게 하는지 질문/답변 글
http://www.nabble.com/Why-there's-no-jcr-1.0.jar-in-1.4-war-dist--td15216240.html

 

Ø  Webapp가 아니라 각각 받아서 설치하고자 할 때 주의할 점은
Lucene-core
text-extractor에서 사용하는 poi, pdfbox, nekohtml, xml-apis, xcercesImpl 을 별도로 받아서 포함 시켜야 한다.

 

Jackrabbit을 이용하여 데이터 저장하기.

데이터를 저장하기 위해서는 다음과 같은 설정을 해주어야 한다.

 

site에서 제공하는 sample 설정 파일 다운

 

기본적으로 알아야 할 사항.

설정파일에서 사용되는 변수들

${rep.home} : Repository 홈 디렉토리

${wsp.name}: workspace이름.

${wsp.home}: workspace홈 디렉토리

 

Repository 안에 여러 workspace를 생성할 수 있는 형태이다.

 

샘플

http://jackrabbit.apache.org/first-hops.html

 

구현 기본 플로우

 

1)     Repository 생성
Repository repository = new TransientRepository();

2)     Login
// Session
객체를 얻어 온다.

Session session = repository.login();

3)     노드 조작
// Node
Property로 이루어져 있다. (DOM에서 Node Attribute 개념과 같음)
Node root = session.getRootNode();
Node hello = root.addNode("hello");
Node world = hello.addNode("world");
world.setProperty("message", "Hello, World!");

4)     Save
//
현재 세션에서 작업한 것을 반영한다
session.save();

설정 파일은 어디에 두어야 하는가?
new TransientRepository()
하면 현재 폴더의 repository.xml 파일을 읽는다.

 

샘플 중에 SecondHop을 실행하면 현재 폴더에 repository 폴더가 생성된다.

사용자 삽입 이미지

 










여기까지 됐다면 기본 환경 설정은 OK