将CoAP消息发送到OM2M

时间:2018-05-27 12:57:50

标签: java eclipse coap onem2m

我试图在OM2M中向IN-CSE发送CoAP消息,但是IN-CSE打印了NullpointerException,就像我上传的图片一样。

我通过修改OM2M源代码中的CoAPServer类解决了这个问题。

我认为问题是" to = coap:// localhost /〜/ in-cse"所以我修改了requestPrimitive.setTo(request.getURI()) 在CoAPServer类中请求.Primivice.setTo(request.getOptions()。getURIString())。

我认为这种方式不好,我不知道如何解决问题而不修改代码...

如果有人知道其他任何方式,请告诉我。

由于

- 追加

我找到了删除错误的解决方案。

首先,我检查了发布的OM2M版本。我试图将CoAP消息发送到旧版本(1.0.0)。然后很好地转移了没有问题。但最新版本有错误。所以我比较了两个代码。(我专注于org.eclipse.om2m.binding.coap中的CoapServer.java)

在Coapserver.java中,service()创建一个requestPrimitive对象并传输到Router.java。它将targetId作为"到" requestPrimitive对象中的变量通过setTargetId()(setTargetId()在1.0.0版本中调用setTo())。但在最新版本中,它将返回的字符串getURI()作为"到" requestPrimitive对象中的变量。 (在最新版本中,除非我使用它,否则它似乎不使用targetId。)

targetId包含" / in-cse"和getURI()返回" coap:// localhost /〜/ in-cse"。

enter image description here

enter image description here

最新版本删除了reqeustPrimitive类中的setTargetId()。所以当我将setTo(getURI())修改为setTo(targetId)时,传输得很好。

enter image description here

enter image description here

这是最新版本的错误吗?或者我做错了什么?

0 个答案:

没有答案