Riak for Grails插件 - 无法正常工作

时间:2012-08-07 00:47:18

标签: spring grails spring-data riak springsource

我正在尝试配置和测试Riak for Grails插件。我删除了它在Bu​​ildConfig中的依赖关系,删除了hibernate插件。注意:我不是试图对GORM使用它 - 而只是使用spring数据支持来查询。

我必须添加以下两行以避免在删除hibernate后在运行时出错;

springConfig.addAlias "persistenceInterceptor", "riakPersistenceInterceptor"
springConfig.addAlias('transactionManager', 'riakTransactionManager')

该项目编译良好,并运行。但是 - 一旦我尝试使用任何Riak方法,我通常会得到一个404 - 找不到对象错误,或者更难以捉摸的错误。

文档建议我可以使用自动服务;

import org.springframework.data.keyvalue.riak.core.RiakTemplate

class myClass {

    // Service injection
    def riakTemplate

    def myMethod() {
        riakTemplate.set("myBucket", "myKey", "A String")
    }

}

但这不起作用。我试过了;

RiakTemplate riakTemplate = new riakTemplate("serviceurl", "mapredurl")
riakTemplate.set("myBucket", "myKey", "A String")

我的想法已经不多了。是否有指南或有助于此工作的东西?

值得注意的是我在我的localhost上运行了Riak,并且我可以轻松地使用Curl管理密钥。所以我不认为这是一个Riak问题。

我可能错过了一些明显的东西。 :)

我正在运行Grails 2.1.0。

谢谢!

2 个答案:

答案 0 :(得分:0)

我知道这不是“回答问题”,但对于当前的项目,我们决定放弃插件,因为类似的问题,支持在服务类中直接使用Spring Rest。我认为这种方法对你也很有用,因为你在顶部提到你并没有尝试使用插件的GORM支持。

你应该找到一个相当容易实现的直接Spring Rest方法,可以更好地控制map reduce和利用2i。我还建议从一个试图跟随Basho自己的Java客户端的Riak接口开始,这样如果你觉得你需要性能优势,你可能会发现在将来的某个时候用Basho的PBC实现更容易替换你的Rest实现。

关于Riak插件的一个特别说明:它似乎在不久前已经无限期地持有,而领导者Jonathan Brisbin似乎特别关注最近的新Spring Data - REST项目 - 也许是关于Riak插件会“弹出”吗?

-Todd

答案 1 :(得分:0)

我也遇到了这个问题,发现这是因为默认配置是使用底层RestTemplate中的DefaultErrorHandler。

要让DiakTemplate在404s上没有失败,你可以将属性'ignoreNotFound'设置为true,它将再次起作用。