2013-10-19 45 views
0

我想存儲一個Riak Pojo對象與數據庫中的鏈接使用Java。儘管字段類型爲集合<RiakLink>,但它仍會拋出相同的異常「riak鏈接字段必須爲集合<RiakLink>」。Riak鏈接存儲與java

代碼: 類POJO的{

public String name; 

@RiakKey 
public String key; 

@RiakLinks 
@JsonIgnore 
public Collection<RiakLink> collection = new ArrayList<RiakLink>(); 

}

公共類Riak2 {

public static void main(String[] args) throws RiakException { 

    IRiakClient client = RiakFactory.httpClient(); 

    Pojo p = new Pojo(); 
    p.name = "Pojo"; 
    p.key = "First"; 
    p.collection.add(new RiakLink("list","Second","next")); 

    client.fetchBucket("list").execute().store(p); 
} 

}

異常:異常在線程 「主要」 的java.lang。 RuntimeException:java.lang.IllegalArgumentException:riak鏈接字段必須爲 是收集<RiakLink>在com.basho.riak.client.convert.reflect.AnnotationCache.get(AnnotationCache.java:56)

請給我一個幫助 感謝

回答

1

我已經在這兩個測試這目前的1.1.3和1.4.2版本的客戶端並不能重現此問題。

另外,實際上有一個unit test that ensures this works

查看AnnotationCache的歷史記錄,我無法找到自從它創建於大約兩年前以來有過這樣一個錯誤的地方,因此排除了使用具有錯誤的舊版客戶機的問題。

鑑於此,我建議重新構建您的項目/重新檢查您在Q中列出的代碼是實際使用的代碼。如圖所示,它沒有問題。

+0

哎呀..! thanx它的作品。我可能會使用一個較老的客戶端,它甚至沒有編譯單元測試。我切換到「http://riak-java-client.s3.amazonaws.com/riak-client-1.4.2-jar-with-dependencies.jar」,它完美的工作。謝謝...再次.. – maamaa

+0

其實我只是想清楚發生了什麼,這是我的錯誤。問題是有3個RiakLinks&我正在使用com.basho.riak.client.http.RiakLink,但沒有與com.basho.riak.client.RiakLink錯誤 – maamaa

相關問題