Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SNMP4J:SNMP Walk提供java.lang.NullPointerException:上下文引擎ID不能为null_Java_Snmp4j - Fatal编程技术网

SNMP4J:SNMP Walk提供java.lang.NullPointerException:上下文引擎ID不能为null

SNMP4J:SNMP Walk提供java.lang.NullPointerException:上下文引擎ID不能为null,java,snmp4j,Java,Snmp4j,我使用SNMP4J在OID上执行SNMPv3漫游,但我得到以下错误 java.lang.NullPointerException:上下文引擎ID不能为null 我能够从SNMPv1成功获得响应,只有v3给出了这个错误。非常感谢您在这方面的任何帮助 SNMP4J版本:2.5.3我能够在不使用ContextEngineID或ContextName的情况下让它工作 我在创建DefaultPDUFactory时没有指定PDUType,默认构造函数使用PDU.GET作为PDUType。在阅读TreeUti

我使用SNMP4J在OID上执行SNMPv3漫游,但我得到以下错误


java.lang.NullPointerException:上下文引擎ID不能为null

我能够从SNMPv1成功获得响应,只有v3给出了这个错误。非常感谢您在这方面的任何帮助


SNMP4J版本:2.5.3

我能够在不使用ContextEngineID或ContextName的情况下让它工作

我在创建DefaultPDUFactory时没有指定PDUType,默认构造函数使用PDU.GET作为PDUType。在阅读TreeUtils.getSubtree注释时,该注释提到“从指定目标同步获取具有GETNEXT(SNMPv1)或GETBULK(SNMP2c,SNMPv3)操作的子树。”我意识到我必须将PDUType设置为GETBULK

在创建DefaultPDUFactory对象时,将PDUType设置为GETBULK之后,我能够使用SNMPv3成功地进行“漫游”

DefaultPDUFactory defaultPDUFactory = new DefaultPDUFactory(PDU.GETBULK); 
TreeUtils treeUtils = new TreeUtils(snmp, defaultPDUFactory); 
events = treeUtils.getSubtree(getV3Target(), oid)

“上下文引擎ID不得为空”,因此请提供非空的上下文引擎ID。可能的提示:
ScopedPDU#setContextEngineID(OctetString)
我可以从SNMP浏览器执行SNMP v3漫游,而无需使用ContextEngineID或ContextName。我可以在没有ContextEngineID和ContextName的情况下使用getBulk不知道为什么只有“Walk”需要它我在其他地方读到了这样一条注释--“如果没有提供上下文引擎ID,则使用安全引擎ID。”我的代码是OctetString localEngineId=new OctetString(MPv3.createLocalEngineID());USM USM=new USM(SecurityProtocols.getInstance(),localEngineId,0);SecurityModels.getInstance().addSecurityModel(usm);snmp.getUSM().addUser(v3Username,新的UsmUser(v3Username,v3AuthProtocol,v3AuthPhrase,v3PrivProtocol,v3PrivPhrase));因为我在散步,所以我没有使用ScopedPDU设置上下文ID或上下文名称。DefaultPDUFactory DefaultPDUFactory=新的DefaultPDUFactory();TreeUtils TreeUtils=新树(snmp,defaultPDUFactory);events=treeUtils.getSubtree(getV3Target(),oid);我真的被困在这件事上了,有人在这件事上运气好吗?。。。非常感谢你的帮助