Wso2 如何通过RESTAPI发布具有long类型属性的BAM事件?

Wso2 如何通过RESTAPI发布具有long类型属性的BAM事件?,wso2,wso2bam,Wso2,Wso2bam,根据日志,我已经使用RESTAPI创建了一个事件流定义 [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-0dde7892c3a

根据日志,我已经使用RESTAPI创建了一个事件流定义

[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中提取的版本


所以问题是:如何使用RESTAPI发布具有长类型属性的事件?

一个修复了此问题的beta2托管在

上,我用一个长的测试了这个问题,它刚刚起作用。您是否可以将您的流定义也包括到中,以便能够准确地再现问题?使用的流定义是:{name:labit.stream,版本:0.0.3,描述:Long和BigInt测试流,元数据:[{name:myTimeStamp,type:Long},{name:source,type:string}],payloadData:[{name:fibonacciNumber,type:int}]}我设法重现了该问题。已在创建了jira。这将在发行版中修复。这已通过发行版分支中的修订版139770修复。当二进制文件可用时,我将指向一个链接。这是个好消息。谢谢!