Исключение нулевого указателя в событии CEP

Я отправляю почтовый запрос REST в Proton CEP от Context Broker (оба на локальном хосте), но когда он получает событие, он не может прочитать 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

Когда я отправляю ему сообщение REST в формате JSON, ответ:

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

person AGonzalez    schedule 19.05.2015    source источник


Ответы (1)


Надеюсь, что вы решили этот вопрос, но так как у меня были похожие проблемы, то напишу свой случай:

Вторая ошибка означает, что либо вы не отправляете полезную нагрузку с POST, либо не включаете определенное событие Name. Из документов для полезной нагрузки 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"}]

Кажется, что определение было там, и движок запускался с ним, но не существовало сопоставлений для работы синтаксического анализатора.

Я рекомендую не использовать точки, пробелы или специальные символы в именах определений :).

Надеюсь, поможет!

person duxan    schedule 11.08.2015