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