从Riak检索数据时发生java.io.EOFException

从Riak检索数据时发生java.io.EOFException,java,riak,riak-search,Java,Riak,Riak Search,我试图执行一个简单的从Riak获取数据的字符串 我们正在尝试执行一个示例代码,我们得到了错误。这是一个为从Riak获取数据而编写的Java代码 我确保riak是通过Sudo riak Start运行的 错误如下: Exception in thread "main" com.basho.riak.client.RiakRetryFailedException: java.io.EOFException at com.basho.riak.client.cap.DefaultRetrier

我试图执行一个简单的从Riak获取数据的字符串

我们正在尝试执行一个示例代码,我们得到了错误。这是一个为从Riak获取数据而编写的Java代码

我确保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();
    }
}

表示在输入过程中意外到达文件结尾或流结尾。 此异常主要由数据输入流用于向流结束发送信号。请注意,许多其他输入操作在流的末尾返回一个特殊值,而不是抛出异常

你可以看到,如下所示

表示在输入过程中意外到达文件结尾或流结尾。 此异常主要由数据输入流用于向流结束发送信号。请注意,许多其他输入操作在流的末尾返回一个特殊值,而不是抛出异常

你可以看到,如下所示
非常感谢您的帮助

我发现了问题

我的端口是8087而不是8098

我们需要在/etc/riak/app.conf中配置它(在API设置下)

我重新配置了它,它修复了它


谢谢大家!

非常感谢您的帮助

我发现了问题

我的端口是8087而不是8098

我们需要在/etc/riak/app.conf中配置它(在API设置下)

我重新配置了它,它修复了它


谢谢大家!

端口是8087,因为您正在使用pbcclient。没错。如果使用httpclient,默认端口为8098。这就是你所困惑的。我也是,呵呵。

端口是8087,因为您正在使用pbcclient。没错。如果使用httpclient,默认端口为8098。这就是你所困惑的。我也是,呵呵。

同伴已经关闭了连接。你是什么意思?我们正在使用localhost,我可以看到我们的riak服务器已经启动并运行了!你能解释一下吗?(对不起,我对riak有点陌生)我的意思是,对等应用程序,可能是riak服务器,已经关闭了代码读取的连接,这导致它抛出EOFEException。对我来说似乎很清楚。同伴已经关闭了连接。你是什么意思?我们正在使用localhost,我可以看到我们的riak服务器已经启动并运行了!你能解释一下吗?(对不起,我对riak有点陌生)我的意思是,对等应用程序,可能是riak服务器,已经关闭了代码读取的连接,这导致它抛出EOFEException。我似乎很清楚。