Push-pull на стороне сервера Couchabase через сторону клиента Couchbase lite

Я попытался создать один небольшой код Java для обработки базы данных Couchbase lite и выполнения двухтактной операции.

senario в глубине выглядит следующим образом

что я сделал, так это создал корзину с именем sync_gateway и подключился к серверу Couchbase с помощью ниже config.json

{
"interface":":4984", 
"adminInterface":":4985",
"databases":{ 
"db":{ 
"server":"http://localhost:8091", 
"bucket":"sync_gateway",
"sync":function(doc) {
channel(doc.channels);
}
}
}
}

это создало метаданные в корзине sync_gateway на сервере, затем я написал пример кода Java для локальной базы данных CBL и написал функции для двухтактных операций... код:

package com.Testing_couchbaseLite;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import javax.naming.ldap.ManageReferralControl;

import org.apache.http.cookie.Cookie;

import com.couchbase.lite.Context;
import com.couchbase.lite.CouchbaseLiteException;
import com.couchbase.lite.Database;
import com.couchbase.lite.Document;
import com.couchbase.lite.JavaContext;
import com.couchbase.lite.Manager;
import com.couchbase.lite.ManagerOptions;
import com.couchbase.lite.QueryOptions;
import com.couchbase.lite.replicator.Replication;
import com.couchbase.lite.support.HttpClientFactory;

public class Test_syncGateWay {


    private URL createSyncURL(boolean isEncrypted){
        URL syncURL = null;
        String host = "https://localhost";  //sync gateway ip
        String port = "4984";              //sync gateway port
        String dbName = "db";
        try {
            syncURL = new URL(host + ":" + port + "/" + dbName);
        } catch (MalformedURLException me) {
            me.printStackTrace();
        }
        return syncURL;
    }

    private void startReplications() throws CouchbaseLiteException {


        try {

            Map<String, Object> map = new HashMap<String, Object>();
            map.put("id", "1");
            map.put("name","ram");

            Manager man = new Manager(new JavaContext(), Manager.DEFAULT_OPTIONS);
            Database db = man.getDatabase("sync_gateway");
            Document doc = db.createDocument();
            doc.putProperties(map);

            System.out.println("-------------done------------");



            System.out.println(man.getAllDatabaseNames());
            System.out.println(man.getDatabase("sync_gateway").getDocumentCount());

        System.out.println(db.getDocument("1").getCurrentRevisionId());         

            System.out.println(db.exists());


              Replication pull = db.createPullReplication(this.createSyncURL(true));
            Replication push = db.createPushReplication(this.createSyncURL(true));
           pull.setContinuous(true);
            push.setContinuous(true);
           pull.start();
            push.start();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



    }

    private void createDatabase() throws CouchbaseLiteException, IOException {
        // TODO Auto-generated method stub




    }

    public static void main(String[] args) throws CouchbaseLiteException, IOException {
        new Test_syncGateWay().startReplications();



    }
}

теперь я указываю шлюз синхронизации с помощью этого файла конфигурации и запускаю код Java для создания документа на сервере CBL и CB с помощью операции push-pull.

бт он показывает ошибку как

Jul 08, 2016 10:27:21 AM com.couchbase.lite.util.SystemLogger e
SEVERE: RemoteRequest: RemoteRequest{GET, https://localhost:4984/db/_local/2eafda901c4de2fe022af262d5cc7d1c0cb5c2d2}: executeRequest() Exception: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated. url: https://localhost:4984/db/_local/2eafda901c4de2fe022af262d5cc7d1c0cb5c2d2

так есть какое-то недоразумение в моей концепции??? и как решить эту проблему??


person RaOne    schedule 08.07.2016    source источник


Ответы (1)


Вы не настроили шлюз синхронизации для SSL. Вам необходимо добавить ключи SSLCert и SSLPass в файл конфигурации.

person borrrden    schedule 08.07.2016