首页 文章

CEP事件的空指针异常

提问于
浏览
1

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

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 回答

  • 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

    ...结果我从Authoring Tool导出了一个应用程序,该应用程序名称中包含空格和点,因此名称和URL不匹配: [{name: "/opt/repositories/tomcat10/ReactiFI v0.1.json", url: "/ProtonOnWebServerAdmin/resources/definitions/ReactiFI v0"}]

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

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

    希望能帮助到你!

相关问题