ru.bitel.oss.systems.inventory.resource.server.SmnpDeviceManager
Код:
public Object heartbeat()
throws Exception
{
return snmpClient.get(uptimeOid, -1L, java/lang/Long);
}
ru.bitel.bgbilling.kernel.network.snmp.SnmpClient
Код:
public Object get(long oid[], long subOid, Class clazz)
throws BGException
{
BlockPdu pdu = new BlockPdu(snmpContext);
pdu.setPduType(0);
addOid(pdu, oid, subOid);
varbind varbind;
try
{
varbind = pdu.getResponseVariableBinding();
}
catch(Exception e)
{
throw new BGException(e);
}
if(pdu.getErrorStatus() == 0)
{
logger.info((new StringBuilder("Ok: ")).append(pdu).toString());
return convertFromAsn(varbind.getValue(), clazz);
} else
{
logger.error((new StringBuilder("PDU get error: ")).append(varbind).toString());
throw new BGException((new StringBuilder("PDU get error=")).append(pdu.getErrorStatusString()).append(": ").append(varbind).toString());
}
}
...
private Object convertFromAsn(AsnObject value, Class clazz)
{
if(value instanceof AsnObject)
return clazz.cast(value);
if(value instanceof AsnInteger)
return clazz.cast(Integer.valueOf(((AsnInteger)value).getValue()));
if(value instanceof AsnUnsInteger)
return clazz.cast(Long.valueOf(((AsnUnsInteger)value).getValue()));
if(value instanceof AsnOctets)
{
if(clazz == java/lang/String)
return clazz.cast(((AsnOctets)value).getValue());
if(clazz == java/util/Calendar)
return clazz.cast(((AsnOctets)value).getCalendar());
if(clazz == java/net/InetAddress)
return clazz.cast(((AsnOctets)value).getIpAddress());
else
return clazz.cast(((AsnOctets)value).getBytes());
}
if(value instanceof AsnNull)
return null;
else
throw new IllegalArgumentException((new StringBuilder("Unknown type - ")).append(value).toString());
}
Вот в жизни не подумал бы, что там должен быть int! Может тогда подскажете, какой int там надо написать?