CEP事件的空指针异常

时间:2015-05-19 08:23:35

标签: complex-event-processing fiware

我从Context Broker向Proton CEP发送一个REST post请求(都在localhost中)但是当它收到该事件时无法读取xml。 这是卡塔琳娜日志:

may 20, 2015 9:38:52 AM com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader readFrom
INFORMACIÓN: started event message body reader
may 20, 2015 9:38:52 AM com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader readFrom
INFORMACIÓN: Event: TripContextUpdate
may 20, 2015 9:38:52 AM com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader readFrom
GRAVE: Could not parse XML NGSI event java.lang.NullPointerException, reason: null
 last attribute name: null last value: null
may 20, 2015 9:38:52 AM com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader readFrom
INFORMACIÓN: finished event message body reader
may 20, 2015 9:38:52 AM com.ibm.hrl.proton.webapp.resources.EventResource submitNewEvent
INFORMACIÓN: starting submitNewEvent
may 20, 2015 9:38:52 AM com.ibm.hrl.proton.webapp.resources.EventResource submitNewEvent
GRAVE: Could not send event, reason: java.lang.NullPointerException, message: null

当我以JSON格式发送REST帖子时,响应是:

may 20, 2015 10:23:57 AM com.ibm.hrl.proton.webapp.providers.EventJSONMessageReader readFrom
INFORMACIÓN: started event message body reader
may 20, 2015 10:23:57 AM com.ibm.hrl.proton.webapp.providers.EventJSONMessageReader readFrom
GRAVE: Could not parse json event org.apache.wink.json4j.JSONException: The key [Name] was not in the map, reason: The key [Name] was not in the map

1 个答案:

答案 0 :(得分:2)

我希望你已经解决了这个问题,但由于我有类似的问题,我会写下我的案例:

第二个错误表示您没有发送带有POST的有效负载,或者您没有包含已定义的事件Name。从docs for JSON有效负载,它应该类似于

{"Name":"TrafficReport", "volume":"1000"}

然而,对我来说,这不起作用,我得到的错误类似于你的NGSI XML Could not parse json event java.lang.NullPointerException, reason: null

比我开始调试我正在POST的运行实例: GET: localhost:8080/ProtonOnWebServerAdmin/resources/instances/ProtonOnWebServer GET: localhost:8080/ProtonOnWebServerAdmin/resources/definitions

...事实证明我已经从创作工具中导出了一个应用程序,该应用程序名称中包含空格和点,因此名称和URL不匹配: [{name: "/opt/repositories/tomcat10/ReactiFI v0.1.json", url: "/ProtonOnWebServerAdmin/resources/definitions/ReactiFI v0"}]

似乎定义就在那里,引擎从它开始,但解析器没有映射工作。

我建议定义名称中没有点,空格或特殊字符:)。

希望它有所帮助!