[SNMP4J] snmp get returns null
Mark Moorcroft
mark.moorcroft at gmail.com
Thu Oct 23 19:15:20 CEST 2008
I've been trying to query a Motorola device but am not having much
luck. I wrote a small test application to send a get request and read
the response but the response object is null. I ran a tcpdump and can
see both the request and response messages over the wire. Thus it has
something to do with the way the code is listening for the packets. I
followed the suggestions in the javadocs and invoke snmp.listen()
before I call the get method. The code looks something like the
following:
/**
* @param args
*/
public static void main(String[] args) throws Exception {
LogFactory.setLogFactory(new Log4jLogFactory());
String community = "opennms-Priv";
String address = "xx.xx.xx.xx/161"; // <<< hide the IP address
String strOID = "1.3.6.1.4.1.161.19.3.1.4.1.26.3";
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString(community));
Address targetAddress = new UdpAddress(address);
target.setAddress(targetAddress);
target.setVersion(SnmpConstants.version2c);
target.setRetries(0);
target.setTimeout(4000);
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
snmp.listen();
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID(strOID)));
pdu.setType(PDU.GET);
ResponseEvent response = snmp.get(pdu, target);
if (response.getResponse() == null) {
// request timed out
System.out.println("request timed out!");
} else {
System.out.println("Received response from: "
+ response.getPeerAddress());
// dump response PDU
System.out.println(response.getResponse().toString());
}
snmp.close();
}
I'm debugging the code from within Eclipse 3.4.1 using JDK 1.5 on
MacOS X Leopard. Thanks for any help you may provide.
Cheers,
Mark
More information about the SNMP4J
mailing list