forum.bitel.ru http://forum.bitel.ru/ |
|
Помогите с динамическим кодом в 5.2 http://forum.bitel.ru/viewtopic.php?f=19&t=6238 |
Страница 1 из 1 |
Автор: | ArtKZ [ 16 дек 2011, 13:10 ] |
Заголовок сообщения: | Помогите с динамическим кодом в 5.2 |
Пытаюсь из собственного динамического класса вызвать методы из ru.bitel.bgbilling.kernel.network.snmp.SnmpClient. Мой собственный класс фактически копия ru.bitel.oss.systems.inventory.resource.server.SmnpDeviceManager. Проблема связана с вызовом snmpClient.get() Код: @Override public Object serviceModify( ServiceActivatorEvent e ) throws Exception { logger.info( "SERVICE MODIFY" ); return snmpClient.get(uptimeOid, -1L, java/lang/Long); Компилятор ругается на java/lang/Long Код: /usr/local/BGBillingServer/dyn/ru/bitel/bgbilling/inet/dyn/device/des3000/DES3028ServiceActivatorTest.java:83: cannot find symbol symbol : variable java /usr/local/BGBillingServer/dyn/ru/bitel/bgbilling/inet/dyn/device/des3000/DES3028ServiceActivatorTest.java:83: cannot find symbol symbol : variable lang /usr/local/BGBillingServer/dyn/ru/bitel/bgbilling/inet/dyn/device/des3000/DES3028ServiceActivatorTest.java:83: cannot find symbol symbol : variable Long /usr/local/BGBillingServer/dyn/ru/bitel/bgbilling/inet/dyn/device/des3000/DES3028ServiceActivatorTest.java:83: <V>get(long[],long,java.lang.Class<V>) in ru.bitel.bgbilling.kernel.network.snmp.SnmpClient cannot be applied to (long[],long,int) Тыкните носом плиз, где и какую закорючку поставить надо? ![]() |
Автор: | Cromeshnic [ 16 дек 2011, 14:17 ] |
Заголовок сообщения: | Re: Помогите с динамическим кодом в 5.2 |
Код: java/lang/Long Это чо ещё? о_О Там число типа int быть, написано же в последней строчке ошибок |
Автор: | ArtKZ [ 16 дек 2011, 14:47 ] |
Заголовок сообщения: | Re: Помогите с динамическим кодом в 5.2 |
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 там надо написать? |
Автор: | ArtKZ [ 16 дек 2011, 23:36 ] |
Заголовок сообщения: | Re: Помогите с динамическим кодом в 5.2 |
Разобрался... в данном случае надо вызывать так: Код: snmpClient.get(uptimeOid, -1L, AsnUnsInteger.class);
|
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |