Liberty에서 실행되는 애플리케이션은 CouchDB를 사용할 수 있습니다. CouchDB 인스턴스에 액세스하기 위해
애플리케이션은 ektorp 클라이언트 라이브러리를 사용하여 NoSQL 데이터베이스에 대한 커넥터를
구성할 수 있습니다.
시작하기 전에
Liberty는 CouchDB에 대한 구성 지원을 제공합니다. CouchDB는 확장 가능한
고성능의 개방형 소스 NoSQL 데이터베이스입니다.
ektorp Java
드라이버의 버전 1.4.1 이상을 사용해야 합니다. Maven 플러그인을 사용하여
ektorp 드라이브 및 해당 종속 항목을 얻으십시오.
<dependency>
<groupId>org.ektorp</groupId>
<artifactId>org.ektorp</artifactId>
<version>1.4.1</version>
</dependency>
이 태스크 정보
애플리케이션이 CouchDB를 사용할 수 있게 하려면 server.xml
파일에서 CouchDB Java 드라이버에 대한 공유 라이브러리와 공유 라이브러리에 대한
라이브러리 참조를 구성해야 합니다. 애플리케이션은 애플리케이션에서 직접 액세스하거나 server.xml 파일에서 couchdb-1.0 기능 및
CouchDB 인스턴스 구성을 통해 CouchDB에 액세스할 수 있습니다.
프로시저
- 애플리케이션과 Liberty 런타임이 액세스할 수 있는 위치에
CouchDB Java 드라이버를 설치하십시오.
예를 들어, ektorp 드라이버 파일 및 해당 종속 항목을 Liberty_profile_root/usr/servers/server_name/lib 디렉토리에 넣으십시오.
- server.xml 파일에 ektorp 드라이버 파일에
대한 공유 라이브러리를 구성하십시오.
<library id="couchdb-lib">
<fileset
dir='${server.config.dir}/lib'
includes='org.ektorp-1.4.1.jar
commons-codec-1.6.jar
commons-io-2.0.1.jar
commons-logging-1.1.1.jar
httpclient-4.2.5.jar
httpclient-cache-4.2.5.jar
httpcore-4.2.4.jar
jackson-annotations-2.2.2.jar
jackson-core-2.2.2.jar
jackson-databind-2.2.2.jar
slf4j-api-1.6.4.jar
slf4j-simple-1.6.4.jar'/>
</library>
- 애플리케이션에서 직접 액세스하거나 couchdb-1.0 기능을 사용하여 애플리케이션이 CouchDB에
액세스할 수 있게 하십시오.
- 애플리케이션에서 CouchDB에 직접 액세스할 수 있게 하십시오.
- server.xml 파일의 애플리케이션 요소에서 공유 라이브러리에 대한 라이브러리 참조를 구성하십시오.
<application ...>
<classloader commonLibraryRef="couchdb-lib"/>
</application>
이제 애플리케이션은 CouchDB API에 직접 액세스할 수 있습니다.
애플리케이션이 런타임 인젝션 엔진을 사용하도록 하려면 다음 단계를 계속하십시오.
- server.xml 파일에서 couchdb-1.0 기능 및 couchdb 요소를 구성하십시오.
- couchdb-1.0 기능을 server.xml 파일에 추가하십시오.
<featureManager>
<feature>couchdb-1.0</feature>
<feature>jndi-1.0</feature>
</featureManager>
JNDI 기능은 JNDI를 사용하여 자원을 검색하는 경우에만
필요합니다. 자원 인젝션을 사용하는 경우에는 이 기능이 필요하지 않습니다.
- 이전 단계에서 작성한 공유 라이브러리에 대한 참조가 있는 couchdb 요소를 구성하십시오.
<couchdb id="couchdb" jndiName="couchdb/connector"
libraryRef="couchdb-lib" url="http://example.com:5984" username="username"
password="password"/>
JNDI 이름을 구성하면 애플리케이션 또는 Liberty 런타임이 CouchDB 인스턴스를 검색할 수 있습니다.
- 애플리케이션이 CouchDB에 액세스할 수 있도록 하십시오.
다음 예제는
JNDI 검색과 자원 인젝션 둘 다를 보여줍니다.
public class TestServlet extends HttpServlet {
@Resource(name = "couchdb/connector")
protected CouchDbInstance db;
...
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Alternatively use InitialContext lookup
CouchDbInstance lookup = (CouchDbInstance) new
InitialContext().lookup("java:comp/env/couchdb/connector");
...
- JNDI 검색을 사용하는 경우 자원 환경 참조를 애플리케이션의
web.xml 파일에 추가하십시오.
<resource-env-ref>
<resource-env-ref-name>couchdb/connector</resource-env-ref-name>
<resource-env-ref-type>org.ektorp.CouchDbInstance</resource-env-ref-type>
</resource-env-ref>
couchdb-1.0 기능을 사용하여 온라인 Cloudant®
서비스에 대한 연결을 구성할 수 있습니다.
couchdb 구성 요소에서 기존 Cloudant 계정의
URL, 사용자 ID 및 비밀번호를 지정하십시오. For example:
<couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/>
구성 파일에서 비밀번호를 보안화하는 방법에 대해 학습하려면
Liberty: 비밀번호 암호화를 통한 보호에 대한 한계에 대한 문서를 참조하십시오.
다음에 수행할 작업
이제 애플리케이션이 CouchDB를 사용하도록 구성되었으므로
애플리케이션에서 CouchDB의 사용을 테스트할 준비가 되었습니다.