1

根据日志,我设法使用 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 类型属性的事件?

4

1 回答 1

0

修复了此问题的 beta2 托管在产品下载页面

于 2012-08-30T13:54:30.153 回答