Привет! Я использую Волдеморта для хранения своих данных. Мой ключ - это слово, а значения - номер вхождения слова и URL. Например:
key :question
value: 10, www.stackoverflow.com
Я использую объект Json для установки своих значений.
Мой код выглядит так
import org.json.JSONObject;
import com.metaparadigm.jsonrpc.JSONSerializer;
import voldemort.client.ClientConfig;
import voldemort.client.SocketStoreClientFactory;
import voldemort.client.StoreClient;
import voldemort.client.StoreClientFactory;
public class ClientExample {
public static void main (String [] args) {
String bootstrapUrl = "tcp://localhost:6666";
ClientConfig cc = new ClientConfig ();
cc.setBootstrapUrls (bootstrapUrl);
String[] valuePair = new String[2];
int val = 1;
StoreClientFactory factory = new SocketStoreClientFactory (cc);
StoreClient client = factory.getStoreClient("test");
JSONObject json = new JSONObject();
json.put("occurence",val);
json.put("url", "www.cnn.com");
client.put("foo", json);
}
}
А мой store.xml выглядит так
<stores>
<store>
<name>test</name>
<persistence>bdb</persistence>
<routing>client</routing>
<replication-factor>1</replication-factor>
<required-reads>1</required-reads>
<required-writes>1</required-writes>
<key-serializer>
<type>string</type>
</key-serializer>
<value-serializer>
<type>java-serialization</type>
<schema-info>"Compount Types"</schema-info>
</value-serializer>
</store>
</stores>
Пока я пытался запустить код, я получаю следующее исключение:
**
Исключение в теме "главная"
voldemort.serialization.SerializationException:
java.io.NotSerializableException:
org.json.JSONObject at
voldemort.serialization.ObjectSerializer.toBytes (ObjectSerializer.java:47)
в
voldemort.store.serialized.SerializingStore.put (SerializingStore.java:109)
в
voldemort.store.DelegatingStore.put (DelegatingStore.java:68)
в
voldemort.client.DefaultStoreClient.put (DefaultStoreClient.java:208)
в
voldemort.client.DefaultStoreClient.put (DefaultStoreClient.java:193)
в
ClientExample.main (ClientExample.java:27)
Вызванный:
java.io.NotSerializableException:
org.json.JSONObject at
java.io.ObjectOutputStream.writeObject0 (Неизвестно
Источник) в
java.io.ObjectOutputStream.writeObject (Неизвестно
Источник) в
voldemort.serialization.ObjectSerializer.toBytes (ObjectSerializer.java:44)
**
Подскажите, пожалуйста, как сериализовать объект JSON. Заранее спасибо.