При отправке сообщения CoAP в OM2M возникает исключение nullpointerException
Я пытался отправить сообщение 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), он был перенесен хорошо.
введите описание изображения здесь
введите описание изображения здесь
Это ошибка последней версии? или я что-то не так делаю?