2016-07-01 8 views
1

экземпляр My Proton терпит неудачу с java.lang.NullPointerException всякий раз, когда событие отправляется OrionOrion/Протон подписки: java.lang.NullPointerException разбор события от Orion

это журнал Proton:

proton_1 | 01-Jul-2016 09:46:03.117 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom started event message body reader 
proton_1 | 01-Jul-2016 09:46:03.125 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom Event: ApeContextUpdate 
proton_1 | 01-Jul-2016 09:46:03.126 SEVERE [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom Could not parse XML NGSI event java.lang.NullPointerException, reason: null 
proton_1 | last attribute name: null last value: null 
proton_1 | 01-Jul-2016 09:46:03.130 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom finished event message body reader 
proton_1 | 01-Jul-2016 09:46:03.131 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.resources.EventResource.submitNewEvent starting submitNewEvent 
proton_1 | 01-Jul-2016 09:46:03.132 SEVERE [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.resources.EventResource.submitNewEvent Could not send event, reason: java.lang.NullPointerException, message: null 

Я прочитал Приложение Руководства пользователя и дважды проверил имя события и список атрибутов.

Это XML послан Orion:

POST /ProtonOnWebServer/rest/events HTTP/1.1 
User-Agent: orion/0.28.0 libcurl/7.19.7 
Host: localhost:8080 
Accept: application/xml, application/json 
Content-length: 772 
Content-type: application/xml 

<notifyContextRequest> 
<subscriptionId>57762eb9982959644644f9ee</subscriptionId> 
<originator>localhost</originator> 
<contextResponseList> 
    <contextElementResponse> 
    <contextElement> 
     <entityId type="Ape" isPattern="false"> 
     <id>u1</id> 
     </entityId> 
     <contextAttributeList> 
     <contextAttribute> 
      <name>carsharing</name> 
      <type>urn:x-ogc:def:trs:IDAS:1.0:ISO8601</type> 
      <contextValue>2016-07-01T11:01:06</contextValue> 
     </contextAttribute> 
     </contextAttributeList> 
    </contextElement> 
    <statusCode> 
     <code>200</code> 
     <reasonPhrase>OK</reasonPhrase> 
    </statusCode> 
    </contextElementResponse> 
</contextResponseList> 
</notifyContextRequest> 

Это определение проекта Протон (кстати, это проект скопирован с сервер файловой системы, поскольку также апи остальное терпит неудачу с NullPointerException)

{ 
"epn": { 
    "events": [ 
    { 
     "name": "ApeContextUpdate", 
     "createdDate": "Fri Jul 01 2016", 
     "attributes": [ 
     { 
      "name": "entityId", 
      "type": "String", 
      "dimension": "0" 
     }, 
     { 
      "name": "entityType", 
      "type": "String", 
      "dimension": "0" 
     }, 
     { 
      "name": "carsharing", 
      "type": "Date", 
      "dimension": "0" 
     } 
     ] 
    } 
    ], 
    "epas": [], 
    "contexts": { 
    "temporal": [], 
    "segmentation": [], 
    "composite": [] 
    }, 
    "consumers": [], 
    "producers": [], 
    "name": "t0" 
} 
} 

и это мой докер-Compose файл:

mongo: 
    image: mongo:2.6 
    command: --smallfiles --quiet 

proton: 
    image: fiware/proactivetechnologyonline 
    ports: 
     - "8080:8080" 

orion: 
    image: fiware/orion:0.28 
    links: 
    - mongo 
    - proton 
    command: -dbhost mongo --silent 
    ports: 
     - "1026:1026" 

Я использую Orion 0.28 (последний, который поддерживает уведомления XML) и последний Протон

UPDATE 1 - catalina.log

07-Jul-2016 07:52:39.914 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom started event message body reader 
07-Jul-2016 07:52:39.924 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom Event: ApeContextUpdate 
07-Jul-2016 07:52:39.924 SEVERE [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom Could not parse XML NGSI event java.lang.NullPointerException, reason: null 
last attribute name: null last value: null 
07-Jul-2016 07:52:39.928 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.providers.EventXmlNgsiMessageReader.readFrom finished event message body reader 
07-Jul-2016 07:52:39.929 INFO [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.resources.EventResource.submitNewEvent starting submitNewEvent 
07-Jul-2016 07:52:39.929 SEVERE [http-nio-8080-exec-1] com.ibm.hrl.proton.webapp.resources.EventResource.submitNewEvent Could not send event, reason: java.lang.NullPointerException, message: null 
+0

Как фас я проверяемая, посланный от Orion хорошо сформирован, так что, кажется, не быть проблемой в Орионе. – fgalan

+0

Итак, вы знаете о несовместимости сообщений JSON в последней версии ORION, которая еще не поддерживается PROTON. Спасибо за детали. Изучение проблемы. – urishani

ответ

1

Проблема, кажется, что ваш экземпляр Proton на самом деле не сконфигурирован с файлом определения JSON вашего проекта, поэтому при отправке POST любого типа вы всегда будете получать NullPointerException, поскольку в метаданных Proton этого события не будет найдено.

Пожалуйста, попробуйте настроить интерфейс администратора вашего экземпляра, как описано здесь: http://proactive-technology-online.readthedocs.io/en/latest/Proton-InstallationAndAdminGuide/index.html (Настройка Apache Tomcat для управления части)

И затем выполнить следующий запрос: GET //<ip of the machine running Proton>:8080/ProtonOnWebServerAdmin/resources/definitions. Это должно вернуть все определения проекта, которые имеют этот экземпляр ... И если вы видите это в списке, вы можете получить определение своего конкретного проекта, выполнив: GET /<ip of the machine running Proton>:8080/resources/definitions/{definition_name}. Я думаю, что это ничего не вернет, или будет пусто.

Вы можете обновить определения с помощью RESTful интерфейса, как описано здесь: http://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Complex_Event_Processing_Open_RESTful_API_Specification (под частью Управления Определения Repository)

+0

К сожалению, API '/ ProtonOnWebServerAdmin/resources/definition' не работает; он также терпит неудачу с java.lang.NullPointerException. Я написал об этом поведении в исходном вопросе, но, вероятно, это было перегружено вставными фрагментами – dvd

+0

Я бы хотел увидеть каталину.log вашего сервера Tomcat ... В соответствии с симптомами, которые вы описываете, я не уверен, что приложение установлено правильно – inna

+0

Добавлены соответствующие строки из catalina.log, но если это проблема с установкой, это значит, что изображение докера нарушено? – dvd

Смежные вопросы