Spring Riak for Grails插件-无法工作

Spring Riak for Grails插件-无法工作,spring,grails,spring-data,riak,springsource,Spring,Grails,Spring Data,Riak,Springsource,我正在尝试配置和测试Riak for Grails插件。我在BuildConfig中删除了hibernate插件的依赖项,从而删除了它。注意:我不打算对GORM使用它,而只是使用spring数据支持进行查询 为了避免删除hibernate后在运行时出错,我不得不添加以下两行代码: springConfig.addAlias "persistenceInterceptor", "riakPersistenceInterceptor" springConfig.addAlias('transacti

我正在尝试配置和测试Riak for Grails插件。我在BuildConfig中删除了hibernate插件的依赖项,从而删除了它。注意:我不打算对GORM使用它,而只是使用spring数据支持进行查询

为了避免删除hibernate后在运行时出错,我不得不添加以下两行代码:

springConfig.addAlias "persistenceInterceptor", "riakPersistenceInterceptor"
springConfig.addAlias('transactionManager', 'riakTransactionManager')
该项目编译良好,运行正常。然而,一旦我尝试使用任何Riak方法,我通常会得到一个404-objectnotfound错误,或者一些更难以捉摸的东西

文档表明我可以使用自动连线服务

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")
我的点子快用完了。有没有指南或其他有用的东西来让这个工作

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

我可能遗漏了一些明显的东西。:)

我正在运行Grails2.1.0


谢谢大家!

我知道这并不能“回答这个问题”,但对于当前的项目,我们决定放弃这个插件,因为类似的问题,而直接在服务类中使用Spring Rest。我认为这种方法也适用于您,因为您在顶部提到您不打算使用插件的GORM支持

您应该会发现直接Spring Rest方法非常容易实现,可以更好地控制map reduce并利用2i。我还建议从尝试遵循Basho自己的Java客户机的Riak接口开始,这样,如果您觉得需要性能优势,您可能会发现在将来的某个时候更容易用Basho的PBC实现替换Rest实现

关于Riak插件的一个特别的注意事项是:它似乎在不久前被无限期搁置,而负责人乔纳森·布里斯宾(Jonathan Brisbin)似乎特别关注新的Spring数据——最近的REST项目——也许Riak插件的新工作将从中“涌现”出来


-Todd

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


要使RiakTemplate在404s上不失败,您可以将属性“ignoreNotFound”设置为true,它将再次工作。

如果我在bucket名称下手动创建一个键(使用curl),我将尝试通过代码访问它,那么事情就开始工作了。因此,如果您使用riakTemplate在新bucket下创建密钥,则会失败。如果它使用的是一个现有的bucket,那么它可以正常工作。标记它。所有的set方法似乎都不起作用,它们都是404错误。但是,如果您使用put方法(即,它们为您生成一个密钥),它们似乎可以工作。此外,例如,如果您运行“containsKey”方法,则在不存在的键上总是会出现404错误,但在确实存在的键上会按预期工作。