ログによると、rest-api を使用してイベント ストリーム定義を作成できました。
[2012-08-22 08:48:57,287] INFO {org.wso2.carbon.databridge.streamdefn.cassandra.datastore.CassandraConnector} - Saving Stream Definition : StreamDefinition{streamId='labit.stream-0.0.3-67a2ed14-ece6-4d98-a904-0dde7892c3a9', name='labit.stream', version='0.0.3', nickName='null', description='LONG and BigINT Test stream', tags=null, metaData=[Attribute{name='myTimeStamp', type=LONG}, Attribute{name='source', type=STRING}], correlationData=null, payloadData=[Attribute{name='fibonacciNumber', type=INT}]}
しかし、イベントを公開しようとすると..
[
{
"payloadData" : [1] ,
"metaData" : [1340279541606, "labittest"]
}
]
..rest-api を使用してそれにすると、例外が発生します。
[2012-08-22 08:51:48,797] ERROR {org.wso2.carbon.databridge.streamdefn.cassandra.subscriber.BAMEventSubscriber} - Error processing event.
java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Long
at org.wso2.carbon.databridge.streamdefn.cassandra.inserter.LongInserter.addDataToBatchInsertion(LongInserter.java:31)
at org.wso2.carbon.databridge.streamdefn.cassandra.datastore.CassandraConnector.prepareDataForInsertion(CassandraConnector.java:690)
at org.wso2.carbon.databridge.streamdefn.cassandra.datastore.CassandraConnector.insertEventList(CassandraConnector.java:489)
at org.wso2.carbon.databridge.streamdefn.cassandra.subscriber.BAMEventSubscriber.receive(BAMEventSubscriber.java:41)
at org.wso2.carbon.databridge.core.internal.queue.QueueWorker.run(QueueWorker.java:64)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
一方、Java コードから同じストリームにイベントを発行することはできます。
dataPublisher.publish(labitStream, new Object[] { 1340279541606L, "labittest" }, null, new Object[] { 1 });
私が使用している WSO2 BAM2 のバージョンは、 wso2bam-2.0.0-BETA.zip から抽出されたものです。
問題は、rest-api を使用して long 型の属性を持つイベントを公開するにはどうすればよいかということです。