Varothem
Varothem

Reputation: 21

Java Riak Connection Problems

trying to connect my Java Eclipse to a Riak server on Linux Ubuntu. Followed up some guides but still don't working. Using: - Riak-Client-2.0.2 - Eclipse Oxygen.1a Release (4.7.1a) - Ubuntu 16.04.3 - openjdk version "1.8.0_151"

Have had some problems before with slf4j so i added a external jar: slf4j-jdk14-1.7.25-sources to solve it.

My code:

import com.basho.riak.client.api.RiakClient;
import com.basho.riak.client.api.commands.kv.FetchValue;
import com.basho.riak.client.api.commands.kv.StoreValue;
import com.basho.riak.client.core.query.Location;
import com.basho.riak.client.core.query.Namespace;


import java.net.UnknownHostException;
import java.util.concurrent.ExecutionException;

public class ProdukteEinlesen {
    public static void main(String [] args) throws UnknownHostException, ExecutionException, InterruptedException {

        RiakClient client = RiakClient.newClient(8098, "127.0.0.1");
        Location location = new Location(new Namespace("TestBucket"),"TestKey");

        FetchValue fv = new FetchValue.Builder(location).build();
        FetchValue.Response response = client.execute(fv);

        // Fetch object as String
        String value = response.getValue(String.class);
        System.out.println(value);

        client.shutdown();
    }
}

Now i am getting this:

 Dez 04, 2017 5:58:23 PM com.basho.riak.client.core.RiakNode start
INFORMATION: RiakNode started; 127.0.0.1:8098
Dez 04, 2017 5:58:23 PM com.basho.riak.client.core.RiakCluster start
INFORMATION: RiakCluster is starting.
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-2083854054 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:674162571 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:1161062152 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1411904647 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1369356068 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:957736106 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1598195494 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1723639977 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1232050671 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$3 operationComplete
SCHWERWIEGEND: Channel closed while operation in progress; id:-459317961 127.0.0.1:8098
Dez 04, 2017 6:08:17 PM com.basho.riak.client.core.RiakNode healthCheckFailed
SCHWERWIEGEND: RiakNode failed healthcheck operation; health checking; 127.0.0.1:8098 java.io.IOException: Channel closed while performing health check op.
Dez 04, 2017 6:08:17 PM com.basho.riak.client.core.DefaultNodeManager nodeStateChanged
INFORMATION: NodeManager moved node to unhealthy list; 127.0.0.1:8098
Dez 04, 2017 6:08:17 PM com.basho.riak.client.core.RiakNode$3 operationComplete
SCHWERWIEGEND: Channel closed while operation in progress; id:-1254319488 127.0.0.1:8098
Exception in thread "main" java.util.concurrent.ExecutionException: com.basho.riak.client.core.NoNodesAvailableException
    at com.basho.riak.client.core.FutureOperation.get(FutureOperation.java:260)
    at com.basho.riak.client.api.commands.CoreFutureAdapter.get(CoreFutureAdapter.java:52)
    at com.basho.riak.client.api.RiakCommand.execute(RiakCommand.java:89)
    at com.basho.riak.client.api.RiakClient.execute(RiakClient.java:293)
    at ProdukteEinlesen.main(ProdukteEinlesen.java:18)
Caused by: com.basho.riak.client.core.NoNodesAvailableException
    at com.basho.riak.client.core.RiakCluster.retryOperation(RiakCluster.java:468)
    at com.basho.riak.client.core.RiakCluster.access$1000(RiakCluster.java:47)
    at com.basho.riak.client.core.RiakCluster$RetryTask.run(RiakCluster.java:553)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

My Riak DB is working fine tasted it already via command.

Upvotes: 0

Views: 434

Answers (1)

vempo
vempo

Reputation: 3153

You seem to be using an incorrect port number for Riak connections. The correct port for the Protocol Buffers API is 8087 (assuming you haven't changed the defaults). Port 8098 is for HTTP, you must have tested the server with cURL or another HTTP client. The Java code should be as follows:

RiakClient client = RiakClient.newClient(8087, "127.0.0.1");

Upvotes: 3

Related Questions