2010-04-20 61 views
1

我已经在Ubuntu机器上安装了Riak,如果我做了riak ping,它就可以工作。如何使用Java客户端在Riak中存储对象?

现在我想用Riak Java client来存储一个对象,但它不起作用。当我尝试存储对象时,我得到com.basho.riak.client.response.RiakIORuntimeException。我究竟做错了什么?有没有一种方法来测试我是否可以从我的Java客户端访问riak?我必须先创建一个Bucket吗?怎么样?

import com.basho.riak.client.RiakClient; 
import com.basho.riak.client.RiakObject; 
import com.basho.riak.client.response.FetchResponse; 

public class RiakTest { 

    public static void main(String[] args) { 

     // connect 
     RiakClient riak = new RiakClient("http://192.168.1.107:8098/riak"); 

     // create object 
     RiakObject o = new RiakObject("mybucket", "mykey", "myvalue"); 

     // store 
     riak.store(o); 
    } 
} 
+0

它缝到与我的网络接入问题:http://superuser.com/questions/132865/can-not-connect-to-service-with-my-public-ip - 只与 - 本地主机 – Jonas 2010-04-20 10:58:54

回答

3

乔纳斯默认Riak的HTTP服务器只绑定到本地接口(127.0.0.1)。要改变这个,关闭你的实例并编辑app.config文件。将设置“riak_web_ip”更改为“0.0.0.0”,该设置将绑定到所有接口。

欲了解更多信息,请参阅http://wiki.basho.com/display/RIAK

0

最后最新wiki page

因此,你需要:在每个节点

  1. 关闭您的节点
  2. 删除目录 “环”:{节点目录} /数据/环
  3. 在等/ vm.args从了Riak改名@ 127.0.0.1到SMTH像[email protected]
  4. 在等/ App.config中更改http和pb_ip设置

    from http, [ {"127.0.0.1", 8098 } ]}, to http, [ {"0.0.0.0", 8098 } ]}, 
    

    from {pb_ip, "127.0.0.1" }, to {pb_ip, "0.0.0.0" },