2013-12-03 1 views
1

Я пытаюсь выполнить простой выборка данных в виде строки из Riak.java.io.EOFException при получении данных из Riak

Мы пытаемся выполнить образец кода, и мы получаем ошибку. Это код Java, написанные для Извлечение данных из Riak

Я убедился Riak работает на Sudo Riak Start

ошибки следующим образом: Код

Exception in thread "main" com.basho.riak.client.RiakRetryFailedException: java.io.EOFException 
    at com.basho.riak.client.cap.DefaultRetrier.attempt(DefaultRetrier.java:79) 
    at com.basho.riak.client.cap.DefaultRetrier.attempt(DefaultRetrier.java:81) 
    at com.basho.riak.client.cap.DefaultRetrier.attempt(DefaultRetrier.java:81) 
    at com.basho.riak.client.cap.DefaultRetrier.attempt(DefaultRetrier.java:81) 
    at com.basho.riak.client.cap.DefaultRetrier.attempt(DefaultRetrier.java:53) 
    at com.basho.riak.client.bucket.FetchBucket.execute(FetchBucket.java:72) 
    at riak.App.main(App.java:15) 
Caused by: java.io.EOFException 
    at java.io.DataInputStream.readInt(DataInputStream.java:392) 
    at com.basho.riak.pbc.RiakConnection.receive(RiakConnection.java:110) 
    at com.basho.riak.pbc.RiakClient.getBucketProperties(RiakClient.java:697) 
    at com.basho.riak.client.raw.pbc.PBClientAdapter.fetchBucket(PBClientAdapter.java:249) 
    at com.basho.riak.client.bucket.FetchBucket$1.call(FetchBucket.java:74) 
    at com.basho.riak.client.bucket.FetchBucket$1.call(FetchBucket.java:1) 
    at com.basho.riak.client.cap.DefaultRetrier.attempt(DefaultRetrier.java:72) 
    ... 6 more 

Пример:

package riak; 

import com.basho.riak.client.IRiakClient; 
import com.basho.riak.client.IRiakObject; 
import com.basho.riak.client.RiakException; 
import com.basho.riak.client.RiakFactory; 
import com.basho.riak.client.bucket.Bucket; 

public class App 
{ 
    public static void main(String[] args) throws RiakException 
    { 
     //IRiakClient riakClient = RiakFactory.httpClient(); 
     IRiakClient client = RiakFactory.pbcClient("127.0.0.1", 8098); 
     Bucket myBucket = client.fetchBucket("TestBucket").execute(); 
     IRiakObject myObject = myBucket.fetch("TestKey").execute(); 
     // note that getValueAsString() will return null here if there's no value in Riak 
     System.out.println(myObject.getValueAsString()); 

     client.shutdown(); 
    } 
} 
+1

Точка доступа закрыта. – EJP

+0

Что вы имеете в виду? Мы используем localhost, и я вижу, что наш сервер riak запущен и работает! Не могли бы вы объяснить? (Извините, я новичок в riak) –

+1

Я имею в виду, что одноранговое приложение, предположительно сервер Riak, закрыло соединение, из которого считывает ваш код, что заставляет его бросать EOFException. Кажется совершенно ясным для меня. – EJP

ответ

1

Большое вам спасибо за вашу помощь.

Я нашел проблему!

Мой порт # было 8087 вместо 8098

Нам нужно настроить, что в /etc/riak/app.conf (в соответствии с API настройки)

Я перенастроить, что и он установил ее.

Спасибо!

0

Сигналы о том, что конец файла или конец потока достигнут неожиданно во время ввода. Это исключение в основном используется потоками ввода данных для конца сигнала потока. Обратите внимание, что многие другие операции ввода возвращают специальное значение в конце потока, а не бросают исключение.

, и вы можете видеть, что, как показано ниже http://docs.oracle.com/javase/7/docs/api/java/io/EOFException.html

0

Порт 8087, потому что вы используете pbcclient. Правильно. В случае использования httpclient порт по умолчанию - 8098. Это то, что вас смутило. И я тоже, хе-хе.

 Смежные вопросы

  • Нет связанных вопросов^_^