我从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
答案 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"}]
似乎定义就在那里,引擎从它开始,但解析器没有映射工作。
我建议定义名称中没有点,空格或特殊字符:)。
希望它有所帮助!