0
我想卡桑德拉配置作爲一個Apache點燃2.0緩存持久性存儲。作爲測試,我想鍵值對映射到這個簡單的卡桑德拉表:點燃卡桑德拉緩存配置 - CodecNotFoundException
CREATE TABLE ignite.cache_test(
key text PRIMARY KEY,
value int)
這是相關聯的持久性配置XML我使用:
<persistence keyspace="ignite" table="cache_test" ttl="86400">
<keyspaceOptions>
REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1}
AND DURABLE_WRITES = true
</keyspaceOptions>
<tableOptions>
comment = 'Cache test'
AND read_repair_chance = 0.2
</tableOptions>
<keyPersistence class="java.lang.String" strategy="PRIMITIVE" column="key" />
<valuePersistence class="java.lang.Integer" strategy="PRIMITIVE" column="value" />
</persistence>
當我試圖把元素使用Ignite REST接口緩存我得到:
com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [int <-> java.lang.String]
就好像我試圖將int映射到String類型。我相信這是一個愚蠢的配置錯誤,但我嘗試了幾個組合,但沒有成功。
爲了完整起見,這就是HTTP調用我送:
http://localhost:8080/ignite?cmd=put&key=testkey&val=1&cacheName=cache1
謝謝大家的幫助
是否可以將其他類型映射爲字符串類型以外的值與PRIMITIVE策略? – riccamini
@riccamini我還沒有與Apache點火工作。你的錯誤意味着您正試圖插入字符串轉換成int類型的字段和我檢查自己的REST API調用https://apacheignite.readme.io/v2.0/docs/rest-api#put他們說清楚,關鍵是字符串鍵入 –
我沒有將鍵字段指定爲字符串類型嗎?或者你建議使用web api的所有類型都將被視爲字符串? – riccamini