Riak(Java客户端)突然停止创建二级索引

Riak(Java客户端)突然停止创建二级索引,java,scala,jackson,riak,Java,Scala,Jackson,Riak,注意,我正在Scala中使用Java客户机案例类注释略有不同。我有以下几点建议: case class User( @(JsonProperty@field)("guid") @(RiakKey@field) val guid: String, @(JsonProperty@field)("email") @(JsonSerialize@field)(using=classOf[util.serialization.StringToUrlSerializer]) @(J

注意,我正在Scala中使用Java客户机<代码>案例类注释略有不同。我有以下几点建议:

case class User(
  @(JsonProperty@field)("guid")
  @(RiakKey@field)
  val guid: String,

  @(JsonProperty@field)("email")
  @(JsonSerialize@field)(using=classOf[util.serialization.StringToUrlSerializer])
  @(JsonDeserialize@field)(using=classOf[util.serialization.StringToUrlDeserializer])
  @(RiakIndex@field)(name = "email")
  val email: String,

  @(JsonProperty@field)("passwordHash")
  val passwordHash: String
)
突然,Riak停止为我的
用户
存储二级索引。如果我们通过REST客户机使用原始HTTP API,我们仍然可以手动创建二级索引,但在代码中,我无法解释它失败的原因

以下是我们存储Riak对象的方式:

/**
   * Riak database operations
   */
  val bucketName = "accounts-user"
  val bucket = DB.client.createBucket(bucketName).enableForSearch().execute()
  val converter = {
    val c = new JSONConverter[User](classOf[User], bucketName)
    c.getObjectMapper().registerModule(DefaultScalaModule)
    c
  }

  def store(o: User) = bucket.store(o).withConverter(converter).withRetrier(DB.retrier).execute()
我们使用的Jackson导入如下所示:

import com.fasterxml.jackson.annotation._
import com.fasterxml.jackson.databind.annotation._

import com.fasterxml.jackson.module.scala._
对象已成功存储,并且未引发错误。问题的原因可能是什么?Jackson的
DefaultScalaModule
是否可能会干扰注释?仅供参考,我确实尝试删除自定义转换器,但没有解决问题(但是没有删除任何Scala模块导入)。谢谢

编辑
可能相关:最近我们开始通过NGINX代理Riak。我是否需要同时执行HTTP和TCP
proxy\u pass

正如我所怀疑的,使用NGINX代理是罪魁祸首。虽然我使用HTTP客户端访问bucket,但RIAKJava客户端实际上使用较低级别(可能是PBC)的协议来创建二级索引。不确定为什么它会无声地失败(可能是由于设计原因),但当我将NGINX从HTTP切换到TCP转发时,问题立即得到了解决