Java 当我向OM2M发送CoAP消息时,会发生nullpointerException

Java 当我向OM2M发送CoAP消息时,会发生nullpointerException,java,eclipse,coap,onem2m,Java,Eclipse,Coap,Onem2m,我试图在OM2M中向IN-CSE发送CoAP消息,但IN-CSE打印了NullpointerException,就像我上传的图片一样 我通过修改OM2M源代码中的CoAPServer类解决了这个问题 我认为问题在于“去做”=coap://localhost/所以我修改了requestPrimitive.setTo(request.getURI()) 在CoAPServer类中请求.Primivice.setTo(request.getOptions().getURIString()) 我认为这种

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

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

我认为问题在于“去做”=coap://localhost/所以我修改了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。它通过1.0.0版本中的setTargetId()(setTargetId()调用setTo())将targetId作为“to”变量放入requestPrimitive对象中。但在最新版本中,它将返回的字符串getURI()作为“to”变量放在requestPrimitive对象中。 (在最新版本中,除非我使用它,否则它似乎不使用targetId。)

targetId包含“/在cse中”并返回getURI()coap://localhost/~/在cse中”

最新版本删除了RequestPrimitive类中的setTargetId()。因此,当我将setTo(getURI())修改为setTo(targetId)时,它被很好地传输了


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

可能重复NullPointerException,因为在:
中,如果(statusCode.equals(ResponseStatusCode.OK)){
参数
statusCode
null
。也许您应该在中问这个问题。