При отправке сообщения CoAP в OM2M возникает исключение nullpointerException - PullRequest
0 голосов
/ 27 мая 2018

Я пытался отправить сообщение CoAP в IN-CSE в OM2M, но IN-CSE напечатал NullpointerException, как на картинке, которую я загрузил.

Я решил проблему, изменив класс CoAPServer в исходном коде OM2M.

Я думаю, что проблема заключается в «to = coap: // localhost / ~ / in-cse», поэтому я изменил requestPrimitive.setTo (request.getURI ()) на request.Primivice.setTo (request.getOptions() .getURIString ()) в классе CoAPServer.

Я думаю, что этот путь не годится, я не знаю, как решить проблему без изменения кода ...

Если кто-нибудьзнает любой другой способ, дайте мне знать.

Спасибо

- добавьте

Я нашел решение, чтобы удалить ошибку.

Сначала я проверилвыпущена версия OM2M.и я попытался отправить сообщение CoAP на старую версию (1.0.0).Затем он был перенесен без проблем.но в последней версии произошла ошибка.Поэтому я сравнил два кода. (Я сосредоточился на CoapServer.java в org.eclipse.om2m.binding.coap)

В Coapserver.java service () создает объект requestPrimitive и передает его в Router.java.и ставит targetId как переменную «to» в объекте requestPrimitive через setTargetId () (setTargetId () вызывает setTo ()) в версии 1.0.0.но в последней версии он возвращает строку, возвращаемую getURI (), как переменную "to" в объекте requestPrimitive.(и в последней версии он не использует targetId, если я его не использую.)

targetId содержал "/ in-cse" и getURI () возвращал "coap: // localhost / ~ / in-cse".

введите описание изображения здесь

введите описание изображения здесь

удалена последняя версия setTargetId () в классе reqeustPrimitive,поэтому, когда я изменил setTo (getURI ()) на setTo (targetId), он был перенесен хорошо.

введите описание изображения здесь

введите описание изображения здесь

Это ошибка последней версии?или я что-то не так делаю?

...