我正在尝试使用PySiddhi4在基于Python的环境中运行CEP。为了熟悉该软件包,我尝试运行Siddhi开发人员提供的示例代码。这是链接:https://wso2.github.io/PySiddhi/Run-PySiddhi4/
但是,当我运行代码时,在实例化siddhiAppRuntime时遇到JavaException错误。 siddhiApp查询字符串如下:
siddhiApp = "define stream cseEventStream (symbol string, price float, volume long); " + \
"@info(name = 'query1') from cseEventStream[volume < 150] select symbol,price insert into outputStream;"
我获得以下错误描述:
JVM exception occurred: Error between @ Line: 1. Position: 0 and @ Line: 1. Position: 1. Syntax error in SiddhiQL, extraneous input 'iddhiAp' expecting {<EOF>, ';'}.
我尝试使用查询字符串中的空格,但无济于事。有谁能解决这个问题?提前非常感谢!
答案 0 :(得分:0)
PySiddhi4基本上是Java Siddhi CEP的包装。在那里,我们使用pyjnius [1]模块使用JNI将Java类作为Python类进行访问。但是,似乎存在pyjnius的此字符串编码问题[2],[3],并且引起了上述问题。
因此,根据他们的说法,解决方法是;
请尝试看看。让我们知道如果解决方法似乎不起作用,那么我们可以尝试在PySiddhi本身上进行修复。
[1] https://github.com/kivy/pyjnius