Liberty에서 ektorp 클라이언트 라이브러리를 사용하여 CouchDB 연결 구성

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에 액세스할 수 있습니다.

프로시저

  1. 애플리케이션 및 Liberty 런타임이 액세스할 수 있는 위치에 CouchDB Java 드라이버를 설치하십시오.

    예를 들어, ektorp 드라이버 파일 및 해당 종속 항목을 Liberty_profile_root/usr/servers/server_name/lib 디렉토리에 넣으십시오.

  2. 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>
  3. 애플리케이션에서 직접 액세스하거나 couchdb-1.0 기능을 사용하여 애플리케이션이 CouchDB에 액세스할 수 있게 하십시오.
    • 애플리케이션에서 CouchDB에 직접 액세스할 수 있게 하십시오.
      1. server.xml 파일의 애플리케이션 요소에서 공유 라이브러리에 대한 라이브러리 참조를 구성하십시오.
        <application ...>
           <classloader commonLibraryRef="couchdb-lib"/>
        </application>
        이제 애플리케이션은 CouchDB API에 직접 액세스할 수 있습니다. 애플리케이션이 런타임 인젝션 엔진을 사용하도록 하려면 다음 단계를 계속하십시오.
    • server.xml 파일에서 couchdb-1.0 기능 및 couchdb 요소를 구성하십시오.
      1. couchdb-1.0 기능을 server.xml 파일에 추가하십시오.
        <featureManager>
           <feature>couchdb-1.0</feature>
           <feature>jndi-1.0</feature>
        </featureManager>
        JNDI 기능은 JNDI를 사용하여 자원을 검색하는 경우에만 필요합니다. 자원 인젝션을 사용하는 경우에는 이 기능이 필요하지 않습니다.
      2. 이전 단계에서 작성한 공유 라이브러리에 대한 참조가 있는 couchdb 요소를 구성하십시오.
        <couchdb id="couchdb" jndiName="couchdb/connector"
              libraryRef="couchdb-lib" url="http://example.com:5984" username="username"
              password="password"/>

        JNDI 이름을 구성하면 애플리케이션 또는 Liberty 런타임이 CouchDB 인스턴스를 검색할 수 있습니다.

      3. 애플리케이션이 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");
        ...
      4. 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 및 비밀번호를 지정하십시오. 예:
      <couchdb id='couchdb' jndiName='couchdb/connector' libraryRef='couchdb-lib' url='https://mylink.cloudant.com/' username='myusername' password='mypassword'/> 
      구성 파일에서 비밀번호를 보안화하는 방법에 대해 학습하려면 Liberty: 비밀번호 암호화를 통한 보호의 한계에 대한 문서를 참조하십시오.

다음에 수행할 작업

이제 애플리케이션이 CouchDB를 사용하도록 구성되었으므로 애플리케이션에서 CouchDB의 사용을 테스트할 준비가 되었습니다.


주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_couchdb_create.html