forum.bitel.ru http://forum.bitel.ru/ |
|
Связка Dhcp+Cisco2+Zyxel http://forum.bitel.ru/viewtopic.php?f=7&t=3715 |
Страница 1 из 2 |
Автор: | mrustik [ 15 мар 2010, 18:07 ] |
Заголовок сообщения: | Связка Dhcp+Cisco2+Zyxel |
Нужно создать такую связку, но чтоб была синхронизация шлюзов Dhcp и Zyxel, и адреса выдавались порт - адрес. Как я понимаю для этого нужно вызвать синхронизацию шлюза Dhcp из шлюза Zyxel. Для этого в конфиге шлюза Cisco2 поставил Код: gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanGateWorker , а в конфиге шлюза Zyxel Код: gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker Для полной работы, нужно изменить работу шлюза Dhcp, чтобы выдавать адрес по порту. Но вот загвоздка, в примере Wiki Реализация стандартного шлюза DHCP, есть вызов void parentSync( Gate child, GateWorker childWorker ), который позволяет менять работу шлюза. Но вот класс GateWorker нигде не описан, ну не нашел, и соответственно выдает ошибку Код: 03-15/17:03:41 INFO [Thread-61] CiscoVlanParentGateWorker - Running script 03-15/17:03:41 INFO [Thread-61] CiscoVlanParentGateWorker - Process time => 26 03-15/17:03:41 INFO [Thread-61] CiscoVlanGateWorker - Running script 03-15/17:03:41 ERROR [Thread-61] CiscoVlanGateWorker - Eval error2: Sourced file: inline evaluation of: ``import java.io.BufferedReader; import java.io.Input StreamReader; import java.n . . . '' : Class: GateWorker not found in namespace Sourced file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : Class: GateWorker not found in namespace : at Line: 25 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : Gate Worker at bsh.BSHAmbiguousName.toClass(Unknown Source) at bsh.BSHType.getType(Unknown Source) at bsh.BSHFormalParameter.eval(Unknown Source) at bsh.BSHFormalParameters.eval(Unknown Source) at bsh.BSHMethodDeclaration.evalNodes(Unknown Source) at bsh.BSHMethodDeclaration.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:217) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - java.lang.RuntimeException: Sourced file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : Class: GateWorker not found in namespace : at Line: 25 : in file: inline evaluation of: ``import java.io .BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : GateWorker 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - Caused by: Sourced file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStr eamReader; import java.n . . . '' : Class: GateWorker not found in namespace : at Line: 25 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : GateWorker 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.BSHAmbiguousName.toClass(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.BSHType.getType(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.BSHFormalParameter.eval(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.BSHFormalParameters.eval(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.BSHMethodDeclaration.evalNodes(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.BSHMethodDeclaration.eval(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.Interpreter.eval(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.Interpreter.eval(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bsh.Interpreter.eval(Unknown Source) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:217) 03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - ... 4 more и в доке функция Код: protected void parentSync( Gate child, GateWorker childWorker) { } так же описана, но вызывает такую же ошибку. Может кто запускал скриптовый шлюз Dhcp? |
Автор: | stark [ 15 мар 2010, 18:33 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
import bitel.billing.server.ipn.GateWorker; |
Автор: | mrustik [ 15 мар 2010, 18:40 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
в доке Цитата: где child - объект типа bitel.billing.server.ipn.bean.Gate, представляющий шлюз , который вызывал этот метод. , по описанию child и childWorker, ничем не отличаются, хотя по логике, childWorker - шлюз родитель, я правильно понимаю?childWorker - объект типа bitel.billing.server.ipn.GateWorker, представляющий шлюз , который вызывал этот метод. В описании пакета bitel.billing.server.ipn нет GateWorker, есть UserStatus. |
Автор: | mrustik [ 15 мар 2010, 19:05 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Код: import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.regex.Pattern; import org.apache.xml.serializer.ToXMLStream; import org.xml.sax.SAXException; import ru.bitel.bgbilling.common.DefaultSetup; import bitel.billing.common.module.ipn.IPNContractStatus; import bitel.billing.server.ipn.bean.Gate; import bitel.billing.server.ipn.dlink.UserPortStatus; import bitel.billing.server.ipn.dlink.UserPortStatus.UserPortStatusParser; import bitel.billing.server.util.Utils; import bitel.billing.server.ipn.GateWorker; Объявлены все пакеты, а скрипт выдает ошибку Код: 03-15/17:59:42 INFO [Thread-12] CiscoVlanGateWorker - Running script 03-15/17:59:42 ERROR [Thread-12] CiscoVlanGateWorker - Eval error2: Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.b illing.server.ipn.bean.Gate Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.billing.server.ipn.bean.Gate: <at unknown location> at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Invalid argument: `child' for method: parentSync : Can't assign java.lang.Cl ass to bitel.billing.server.ipn.bean.Gate: <at unknown location> 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - Caused by: Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.bill ing.server.ipn.bean.Gate: <at unknown location> 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invokeImpl(Unknown Source) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) 03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - ... 4 more не находит класс bitel.billing.server.ipn.bean.Gate. Странно как-то. |
Автор: | mrustik [ 15 мар 2010, 19:15 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
И еще вопрос, как вызвать синхроизацию шлюза Zyxel с шлюзом Cisco2. Если в шлюзе Cisco2 создать parentSync( Gate child, GateWorker childWorker), то как различить parentSync от Dhcp и Cisco2? |
Автор: | stark [ 15 мар 2010, 19:18 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): в доке Цитата: где child - объект типа bitel.billing.server.ipn.bean.Gate, представляющий шлюз , который вызывал этот метод. , по описанию child и childWorker, ничем не отличаются, хотя по логике, childWorker - шлюз родитель, я правильно понимаю?childWorker - объект типа bitel.billing.server.ipn.GateWorker, представляющий шлюз , который вызывал этот метод. Да.. кривое описнаие и название параметров . должно быть по идее child и parentWorker . mrustik писал(а): В описании пакета bitel.billing.server.ipn нет GateWorker, есть UserStatus. забыли добавить . Он есть. |
Автор: | stark [ 15 мар 2010, 19:19 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.billing.server.ipn.bean.Gate: <at unknown location> покажите ваш код |
Автор: | mrustik [ 15 мар 2010, 19:20 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Или, если синхронизацию с шлюзом Dhcp вызовет шлюз Cisco2, но в шлюзе Dhcp, можно выставить id и адрес шлюза Zyxel? |
Автор: | mrustik [ 15 мар 2010, 19:21 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Код: import java.io.BufferedReader;
import java.io.InputStreamReader; import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.regex.Pattern; import org.apache.xml.serializer.ToXMLStream; import org.xml.sax.SAXException; import bitel.billing.server.ipn.GateWorker; import ru.bitel.bgbilling.common.DefaultSetup; import bitel.billing.common.module.ipn.IPNContractStatus; import bitel.billing.server.ipn.bean.Gate; import bitel.billing.server.ipn.dlink.UserPortStatus; import bitel.billing.server.ipn.dlink.UserPortStatus.UserPortStatusParser; import bitel.billing.server.util.Utils; //protected void doSync() //{ // log.info( "------------- tSync --------------------" ); //} void parentSync( Gate child, GateWorker childWorker) // void parentSync( Gate child, GateWorker childWorker ) { log.info( "------------- parentSync --------------------" ); String host = gate.getHost(); int port = gate.getPort(); int gid = gate.getId(); log.info("host=" + host); log.info("port=" + port); log.info("gid=" + gid); if( Utils.isEmptyString( host ) || port <= 0 ) { log.error( "Can't get IP/port for BGDHCP for this gate! " ); gateErrors.append( "Не указан адрес сервера dhcp для данного шлюза!" ); return; } if( log.isDebugEnabled() ) log.debug( gid + " gate: " + host + ":" + port ); Socket socket = null; try { //if( childWorker instanceof UserPortStatusParser ) //{ List userPortStatusList = childWorker.getUserList( childWorker.statusList ); socket = new Socket( host, port ); InputStreamReader isr = new InputStreamReader( socket.getInputStream() ); BufferedReader in = new BufferedReader( isr ); ToXMLStream stream = new ToXMLStream(); stream.setOutputStream( socket.getOutputStream() ); stream.setEncoding( "UTF-8" ); stream.startDocument(); stream.startElement( "sync" ); stream.addAttribute( "type", "dhcp" ); Gate gate = child; syncGate( gate, stream ); stream.startElement( "list" ); stream.addAttribute( "gateId", String.valueOf( gate.getId() ) ); stream.endElement( "list" ); stream.flushPending(); stream.getWriter().flush(); Map portStatusMap = new HashMap(); String line = in.readLine(); while( line != null && !"".equals( line ) ) { String[] p = patternTab.split( line ); if( p.length > 1 ) { UserPortStatus st = new UserPortStatus(); st.ipAddr = p[1]; st.port = Utils.parseIntString( p[0], -1 ); portStatusMap.put( st.port, st ); log.info("st.ipAddr" + st.ipAddr); log.info("st.port" + st.port); } line = in.readLine(); } String gateId = String.valueOf( gate.getId() ); for( UserPortStatus status : userPortStatusList ) { UserPortStatus s = portStatusMap.remove( status.port ); if( (s == null || !s.ipAddr.equals( status.ipAddr ) ) && status.status.status != IPNContractStatus.STATUS_REMOVED ) { if ( status.macAddr == null) { stream.startElement( "port" ); stream.addAttribute( "gateId", gateId ); stream.addAttribute( "id", String.valueOf( status.port ) ); stream.addAttribute( "ip", status.ipAddr ); stream.endElement( "port" ); } else { stream.startElement( "portMac" ); stream.addAttribute( "gateId", gateId ); stream.addAttribute( "id", String.valueOf( status.port ) ); stream.addAttribute( "ip", status.ipAddr ); stream.addAttribute( "mac", status.macAddr ); stream.endElement( "portMac" ); } } //удаляем в одном месте if( s != null && status.status.status == IPNContractStatus.STATUS_REMOVED ) { stream.startElement( "removePort" ); stream.addAttribute( "gateId", gateId ); stream.addAttribute( "id", String.valueOf( status.port ) ); stream.addAttribute( "ip", status.ipAddr ); stream.endElement( "removePort" ); } } stream.flushPending(); stream.getWriter().flush(); stream.endElement( "sync" ); stream.endDocument(); stream.getWriter().flush(); //} } finally { if( socket != null ) { try { socket.close(); } catch (Exception e) {} } } } protected void syncGates( Gate gate, ToXMLStream stream ) { try { if( gate != null ) { stream.startElement( "gate" ); stream.addAttribute( "id", String.valueOf( gate.getId() ) ); stream.addAttribute( "host", gate.getHost() ); DefaultSetup gateSetup = new DefaultSetup( gate.getConfig(), "\n" ); Map params = gateSetup.getHashValuesWithPrefix( "dhcp." ); for( Entry e : params.entrySet() ) { stream.startElement( "param" ); stream.addAttribute( "id", "dhcp." + e.getKey() ); stream.addAttribute( "value", e.getValue() ); stream.endElement( "param" ); } if( gate.getChildren() != null ) for( Gate g : gate.getChildren() ) { syncGates( g, stream ); } stream.endElement( "gate" ); } } catch( SAXException e ) { e.printStackTrace(); } } protected void syncGate( Gate gate, ToXMLStream stream ) { try { if( gate != null ) { List gateList = new ArrayList(); gateList.add( gate ); Gate g = gate; while( g != null ) { gateList.add( g ); g = g.getParent(); } HashMap params = new HashMap(); for( int i = gateList.size() - 1; i >= 0; i-- ) { DefaultSetup gateSetup = new DefaultSetup( gateList.get( i ).getConfig(), "\n" ); Map p = gateSetup.getHashValuesWithPrefix( "dhcp." ); for( Entry e : p.entrySet() ) { params.put( e.getKey(), e.getValue() ); } } stream.startElement( "gate" ); stream.addAttribute( "id", String.valueOf( gate.getId() ) ); stream.addAttribute( "host", gate.getHost() ); for( Entry e : params.entrySet() ) { stream.startElement( "param" ); stream.addAttribute( "id", "dhcp." + e.getKey() ); stream.addAttribute( "value", e.getValue() ); stream.endElement( "param" ); } stream.endElement( "gate" ); } } catch( SAXException e ) { e.printStackTrace(); } } protected List getGateListFromTree( Gate root ) { List result = new ArrayList(); getGateListFromTree( result, root ); return result; } protected void getGateListFromTree( List list, Gate root ) { if( root != null ) list.add( root ); if( root.getChildren() != null ) for( Gate gate : root.getChildren() ) { getGateListFromTree( list, gate ); } } |
Автор: | stark [ 15 мар 2010, 19:23 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): И еще вопрос, как вызвать синхроизацию шлюза Zyxel с шлюзом Cisco2. Если в шлюзе Cisco2 создать parentSync( Gate child, GateWorker childWorker), то как различить parentSync от Dhcp и Cisco2? Синхронизация уже вызвается. Т.е станадртнй механизм сам вызовет parentSync у вашего предка. Ваша задача его реализовать в dhcp. |
Автор: | stark [ 15 мар 2010, 19:29 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
stark писал(а): mrustik писал(а): в доке Цитата: где child - объект типа bitel.billing.server.ipn.bean.Gate, представляющий шлюз , который вызывал этот метод. , по описанию child и childWorker, ничем не отличаются, хотя по логике, childWorker - шлюз родитель, я правильно понимаю?childWorker - объект типа bitel.billing.server.ipn.GateWorker, представляющий шлюз , который вызывал этот метод. Да.. кривое описнаие и название параметров . должно быть по идее child и parentWorker . А нет .. childWorker - это как раз потомок .. А вот gate - это предок . |
Автор: | stark [ 15 мар 2010, 19:30 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): Или, если синхронизацию с шлюзом Dhcp вызовет шлюз Cisco2, но в шлюзе Dhcp, можно выставить id и адрес шлюза Zyxel? не понял вопроса |
Автор: | mrustik [ 15 мар 2010, 19:42 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
в конфиге шлюза Zyxel прописал Код: gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker И теперь вызывается синхронизация с шлюзом dhcp, а с шлюзом Cisco2 не вызывается. Если в конфигурации Cisco2 это поставить, а в Zyxel Код: gate_manager.class=bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker , то все правильно вызывается, но в Dhcp ip-адрес шлюза стоит адрес шлюза Cisco2, а нужно ip-адрес Zyxel.
|
Автор: | stark [ 15 мар 2010, 19:43 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
замените Код: void parentSync( Gate child, GateWorker childWorker) на Код: void parentSync( child, childWorker) Документацию поправлю |
Автор: | mrustik [ 15 мар 2010, 19:45 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Dhcp сервер должен выдать ip-адрес по ip-адресу zyxel и порту клиента. |
Автор: | stark [ 15 мар 2010, 19:47 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): в конфиге шлюза Zyxel прописал Код: gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker И теперь вызывается синхронизация с шлюзом dhcp, а с шлюзом Cisco2 не вызывается. Если в конфигурации Cisco2 это поставить, а в Zyxel Код: gate_manager.class=bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker , то все правильно вызывается, но в Dhcp ip-адрес шлюза стоит адрес шлюза Cisco2, а нужно ip-адрес Zyxel.второй вариант правильный . Первый работать не будет . А то что приходи адрес cisco2,так работает схема . Приходит адрес прерудщего шлюза . Так вроде как так и правильнее . dhcp запрос c cisco приходил, когда разрабатывалась эта схема. |
Автор: | stark [ 15 мар 2010, 19:53 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): Dhcp сервер должен выдать ip-адрес по ip-адресу zyxel и порту клиента. Тогда вы можете вообще убрать шлюз dhcp из иерархии . А этот код переатщить в шлюз cisco2 в метод parentSync |
Автор: | mrustik [ 15 мар 2010, 20:03 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Спасибо, попробую реализовать. |
Автор: | mrustik [ 16 мар 2010, 11:13 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Скриптовый шлюз Dhcp выдает ошибку Код: 03-16/10:10:51 ERROR [Thread-12] CiscoVlanParentGateWorker - Eval error2: Typed variable declaration : Cannot access field: statusList, on object: class bitel
.billing.server.ipn.vlan.CiscoVlanParentGateWorker Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker : at Line: 64 : in file : inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashM . . . '' : childWorker .statusList at bsh.UtilEvalError.toEvalError(Unknown Source) at bsh.UtilEvalError.toEvalError(Unknown Source) at bsh.BSHAmbiguousName.toObject(Unknown Source) at bsh.BSHAmbiguousName.toObject(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHArguments.getArguments(Unknown Source) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHVariableDeclarator.eval(Unknown Source) at bsh.BSHTypedVariableDeclaration.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-16/10:10:51 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Typed variable declaration : Cannot access field: statusList, on object: cla ss bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException; import java.util.Arra yList; import java.util.HashM . . . '' : childWorker .statusList |
Автор: | mrustik [ 16 мар 2010, 11:33 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Поменял класс поведения шлюза, результат тот же Код: 03-16/10:26:42 INFO [Thread-12] CiscoSSHSwitchGateWorker - Running script
03-16/10:26:42 INFO [Thread-12] CiscoSSHSwitchGateWorker - ------------- parentSync -------------------- 03-16/10:26:42 INFO [Thread-12] CiscoSSHSwitchGateWorker - host=10.176.82.110 03-16/10:26:42 INFO [Thread-12] CiscoSSHSwitchGateWorker - port=22 03-16/10:26:42 INFO [Thread-12] CiscoSSHSwitchGateWorker - gid=11 03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - Eval error2: Typed variable declaration : Cannot access field: statusList, on object: class bitel. billing.server.ipn.vlan.CiscoSSHSwitchGateWorker Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashM . . . '' : childWorker .statusList at bsh.UtilEvalError.toEvalError(Unknown Source) at bsh.UtilEvalError.toEvalError(Unknown Source) at bsh.BSHAmbiguousName.toObject(Unknown Source) at bsh.BSHAmbiguousName.toObject(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHArguments.getArguments(Unknown Source) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHVariableDeclarator.eval(Unknown Source) at bsh.BSHTypedVariableDeclaration.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Typed variable declaration : Cannot access field: statusList, on object: cla ss bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException; import java.util.Array List; import java.util.HashM . . . '' : childWorker .statusList 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - Caused by: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing. server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import jav a.util.HashM . . . '' : childWorker .statusList 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.UtilEvalError.toEvalError(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.UtilEvalError.toEvalError(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHAmbiguousName.toObject(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHAmbiguousName.toObject(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHArguments.getArguments(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHVariableDeclarator.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHTypedVariableDeclaration.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHTryStatement.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invokeImpl(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) 03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - ... 2 more 03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - Gate unaccesible - 10.176.82.110 03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - ------------------------- 03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - error: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billin g.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import j ava.util.HashM . . . '' : childWorker .statusList java.lang.RuntimeException: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWor ker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashM . . . '' : childWorker . statusList at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) Caused by: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashM . . . '' : childWorker .statusList at bsh.UtilEvalError.toEvalError(Unknown Source) at bsh.UtilEvalError.toEvalError(Unknown Source) at bsh.BSHAmbiguousName.toObject(Unknown Source) at bsh.BSHAmbiguousName.toObject(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHArguments.getArguments(Unknown Source) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHVariableDeclarator.eval(Unknown Source) at bsh.BSHTypedVariableDeclaration.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) ... 2 more |
Автор: | stark [ 16 мар 2010, 12:16 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
чтобы работало нужно нужно в первом варианте заменить childWorker.statusList на statusList Но вам это не поможет .. Вы же хотите по порту авторизовывать . Тут вообще не нужно использовать вызов этого метода . Метод CiscoVlanParentGateWorker.getUserList - возвращает список vlan-ов, а не портов . Он реализован. Вам он не нужен . Вам нужно это место перписать. В этом месте нужно получить список портов .. |
Автор: | mrustik [ 16 мар 2010, 18:52 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Для начала, хочу собрать стандарную схему, с использованием шлюза DHCP на BeanShell. Чтобы разобраться, как работает, да и ошибки выявить, о потом буду свое переписывать. строка Код: List userPortStatusList = childWorker.getUserList(statusList ); вызавает ошибку Код: 03-16/17:47:24 INFO [Thread-43] CiscoVlanParentGateWorker - host=10.176.74.3 03-16/17:47:24 INFO [Thread-43] CiscoVlanParentGateWorker - port=23 03-16/17:47:24 INFO [Thread-43] CiscoVlanParentGateWorker - gid=10 03-16/17:47:24 ERROR [Thread-43] CiscoVlanParentGateWorker - Eval error2: Typed variable declaration : Error in method invocation: Method getUserList( java.ut il.ArrayList ) not found in class'java.lang.Class' Typed variable declaration : Error in method invocation: Method getUserList( java.util.ArrayList ) not found in class'java.lang.Class' : at Line: 50 : in file : inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : childWorker .getUserList ( statusList ) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHVariableDeclarator.eval(Unknown Source) at bsh.BSHTypedVariableDeclaration.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - java.lang.RuntimeException: Typed variable declaration : Error in method invocation: Method getUserList( java.util.ArrayList ) not found in class'java.lang.Class' : at Line: 50 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.Inp utStreamReader; import java.n . . . '' : childWorker .getUserList ( statusList ) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - Caused by: Typed variable declaration : Error in method invocation: Method getUserList( java.util.ArrayL ist ) not found in class'java.lang.Class' : at Line: 50 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : childWorker .getUserList ( statusList ) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHVariableDeclarator.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHTypedVariableDeclaration.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHTryStatement.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BshMethod.invokeImpl(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) 03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - ... 4 more И как описана функция getUserList, нигде в доках нет. |
Автор: | stark [ 16 мар 2010, 20:21 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): Для начала, хочу собрать стандарную схему, с использованием шлюза DHCP на BeanShell. Чтобы разобраться, как работает, да и ошибки выявить, о потом буду свое переписывать. строка Код: List userPortStatusList = childWorker.getUserList(statusList ); вызавает ошибку Исправлено, обновление выложено . mrustik писал(а): И как описана функция getUserList, нигде в доках нет. Эта функция реализована только в 2-х шлюзах - CiscoVlanParentGateWorker и DlinkGateWorker . это внутренняя реализация и нигде не описана. возвращает List<UserPortStatus> . Код: public class UserPortStatus
{ public static interface UserPortStatusParser { public List<UserPortStatus> getUserList( List<UserStatus> statusList ); } public int port; public String ipAddr; public String macAddr; public UserStatus status; } |
Автор: | mrustik [ 17 мар 2010, 11:26 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Странно, вроде все верно, функции public, но Код: stream.setEncoding( "UTF-8" ); stream.startElement( "sync" ); stream.addAttribute( "type", "dhcp" ); вызывают ошибку Код: 03-17/10:06:39 ERROR [Thread-12] CiscoVlanParentGateWorker - Eval error2: Error in method invocation: Cannot access method setEncoding( java.lang.String ) in 'interface org.apache.xml.serializer.XSLOutputAttributes' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml .serializer.XSLOutputAttributes with modifiers "public abstract" Error in method invocation: Cannot access method setEncoding( java.lang.String ) in 'interface org.apache.xml.serializer.XSLOutputAttributes' :java.lang.Illeg alAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializer.XSLOutputAttributes with modifiers "public abstract" : at Line : 60 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : stream .setEncoding ( "UTF -8" ) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Error in method invocation: Cannot access method setEncoding( java.lang.Stri ng ) in 'interface org.apache.xml.serializer.XSLOutputAttributes' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.ap ache.xml.serializer.XSLOutputAttributes with modifiers "public abstract" : at Line: 60 : in file: inline evaluation of: ``import java.io.BufferedReader; impo rt java.io.InputStreamReader; import java.n . . . '' : stream .setEncoding ( "UTF-8" ) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - Caused by: Error in method invocation: Cannot access method setEncoding( java.lang.String ) in 'interfac e org.apache.xml.serializer.XSLOutputAttributes' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializ er.XSLOutputAttributes with modifiers "public abstract" : at Line: 60 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputS treamReader; import java.n . . . '' : stream .setEncoding ( "UTF-8" ) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHTryStatement.eval(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invokeImpl(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) 03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - ... 4 more Код: Код: 03-17/10:10:56 ERROR [Thread-18] CiscoVlanParentGateWorker - Eval error2: Error in method invocation: Cannot access method startElement( java.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache .xml.serializer.ExtendedContentHandler with modifiers "public abstract" Error in method invocation: Cannot access method startElement( java.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.I llegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : stream .startElemen t ( "sync" ) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - java.lang.RuntimeException: Error in method invocation: Cannot access method startElement( java.lang.Str ing ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class or g.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader ; import java.io.InputStreamReader; import java.n . . . '' : stream .startElement ( "sync" ) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - Caused by: Error in method invocation: Cannot access method startElement( java.lang.String ) in 'interfa ce org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.seri alizer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io .InputStreamReader; import java.n . . . '' : stream .startElement ( "sync" ) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHTryStatement.eval(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BshMethod.invokeImpl(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) 03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - ... 4 more Код: 03-17/10:22:33 ERROR [Thread-48] CiscoVlanParentGateWorker - Eval error2: Error in method invocation: Cannot access method addAttribute( java.lang.String, jav a.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member o f class org.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" Error in method invocation: Cannot access method addAttribute( java.lang.String, java.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHan dler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializer.ExtendedContentHandler with modifiers "p ublic abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : s tream .addAttribute ( "type" , "dhcp" ) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - java.lang.RuntimeException: Error in method invocation: Cannot access method addAttribute( java.lang.Str ing, java.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java .io.BufferedReader; import java.io.InputStreamReader; import java.n . . . '' : stream .addAttribute ( "type" , "dhcp" ) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - Caused by: Error in method invocation: Cannot access method addAttribute( java.lang.String, java.lang.St ring ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class o rg.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReade r; import java.io.InputStreamReader; import java.n . . . '' : stream .addAttribute ( "type" , "dhcp" ) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHMethodInvocation.eval(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHPrimaryExpression.eval(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHTryStatement.eval(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHBlock.evalBlock(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BSHBlock.eval(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BshMethod.invokeImpl(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bsh.BshMethod.invoke(Unknown Source) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) 03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - ... 4 more Ipn обновил. |
Автор: | stark [ 17 мар 2010, 13:14 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
[quote="mrustik"]Странно, вроде все верно, функции public, но Код: stream.setEncoding( "UTF-8" ); stream.startElement( "sync" ); stream.addAttribute( "type", "dhcp" ); объект stream откуда берется ? |
Автор: | mrustik [ 17 мар 2010, 16:43 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Код: import java.io.BufferedReader;
import java.io.InputStreamReader; import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.regex.Pattern; import org.apache.xml.serializer.ToXMLStream; //import org.apache.xml.serializer.ToStream; //import org.apache.xml.serializer.SerializerBase; import org.xml.sax.SAXException; import bitel.billing.server.ipn.GateWorker; import ru.bitel.bgbilling.common.DefaultSetup; import bitel.billing.common.module.ipn.IPNContractStatus; import bitel.billing.server.ipn.bean.Gate; import bitel.billing.server.ipn.dlink.UserPortStatus; import bitel.billing.server.ipn.dlink.UserPortStatus.UserPortStatusParser; import bitel.billing.server.util.Utils; import bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker; void parentSync( child, childWorker) // void parentSync( Gate child, GateWorker childWorker ) { log.info( "------------- parentSync --------------------" ); String host = gate.getHost(); int port = gate.getPort(); int gid = gate.getId(); log.info("host=" + host); log.info("port=" + port); log.info("gid=" + gid); if( Utils.isEmptyString( host ) || port <= 0 ) { log.error( "Can't get IP/port for BGDHCP for this gate! " ); gateErrors.append( "Не указан адрес сервера dhcp для данного шлюза!" ); return; } if( log.isDebugEnabled() ) log.debug( gid + " gate: " + host + ":" + port ); Socket socket = null; try { //if( childWorker instanceof UserPortStatusParser ) //{ List userPortStatusList = childWorker.getUserList(statusList); socket = new Socket( host, port ); InputStreamReader isr = new InputStreamReader( socket.getInputStream() ); BufferedReader in = new BufferedReader( isr ); ###################################################### ToXMLStream stream = new ToXMLStream(); ###################################################### stream.setOutputStream( socket.getOutputStream() ); stream.setEncoding( "UTF-8"); stream.startDocument(); stream.startElement( "sync" ); stream.addAttribute( "type", "dhcp" ); Gate gate = child; syncGate( gate, stream ); stream.startElement( "list" ); stream.addAttribute( "gateId", String.valueOf( gate.getId() ) ); stream.endElement( "list" ); stream.flushPending(); stream.getWriter().flush(); Map portStatusMap = new HashMap(); String line = in.readLine(); while( line != null && !"".equals( line ) ) { String[] p = patternTab.split( line ); if( p.length > 1 ) { UserPortStatus st = new UserPortStatus(); st.ipAddr = p[1]; st.port = Utils.parseIntString( p[0], -1 ); portStatusMap.put( st.port, st ); log.info("st.ipAddr" + st.ipAddr); log.info("st.port" + st.port); } line = in.readLine(); } String gateId = String.valueOf( gate.getId() ); for( UserPortStatus status : userPortStatusList ) { UserPortStatus s = portStatusMap.remove( status.port ); if( (s == null || !s.ipAddr.equals( status.ipAddr ) ) && status.status.status != IPNContractStatus.STATUS_REMOVED ) { if ( status.macAddr == null) { stream.startElement( "port" ); stream.addAttribute( "gateId", gateId ); stream.addAttribute( "id", String.valueOf( status.port ) ); stream.addAttribute( "ip", status.ipAddr ); stream.endElement( "port" ); } else { stream.startElement( "portMac" ); stream.addAttribute( "gateId", gateId ); stream.addAttribute( "id", String.valueOf( status.port ) ); stream.addAttribute( "ip", status.ipAddr ); stream.addAttribute( "mac", status.macAddr ); stream.endElement( "portMac" ); } } //удаляем в одном месте if( s != null && status.status.status == IPNContractStatus.STATUS_REMOVED ) { stream.startElement( "removePort" ); stream.addAttribute( "gateId", gateId ); stream.addAttribute( "id", String.valueOf( status.port ) ); stream.addAttribute( "ip", status.ipAddr ); stream.endElement( "removePort" ); } } stream.flushPending(); stream.getWriter().flush(); stream.endElement( "sync" ); stream.endDocument(); stream.getWriter().flush(); //} } finally { if( socket != null ) { try { socket.close(); } catch (Exception e) {} } } } protected void syncGates( Gate gate, ToXMLStream stream ) { try { if( gate != null ) { stream.startElement( "gate" ); stream.addAttribute( "id", String.valueOf( gate.getId() ) ); stream.addAttribute( "host", gate.getHost() ); DefaultSetup gateSetup = new DefaultSetup( gate.getConfig(), "\n" ); Map params = gateSetup.getHashValuesWithPrefix( "dhcp." ); for( Entry e : params.entrySet() ) { stream.startElement( "param" ); stream.addAttribute( "id", "dhcp." + e.getKey() ); stream.addAttribute( "value", e.getValue() ); stream.endElement( "param" ); } if( gate.getChildren() != null ) for( Gate g : gate.getChildren() ) { syncGates( g, stream ); } stream.endElement( "gate" ); } } catch( SAXException e ) { e.printStackTrace(); } } protected void syncGate( Gate gate, ToXMLStream stream ) { try { if( gate != null ) { List gateList = new ArrayList(); gateList.add( gate ); Gate g = gate; while( g != null ) { gateList.add( g ); g = g.getParent(); } HashMap params = new HashMap(); for( int i = gateList.size() - 1; i >= 0; i-- ) { DefaultSetup gateSetup = new DefaultSetup( gateList.get( i ).getConfig(), "\n" ); Map p = gateSetup.getHashValuesWithPrefix( "dhcp." ); for( Entry e : p.entrySet() ) { params.put( e.getKey(), e.getValue() ); } } stream.startElement( "gate" ); stream.addAttribute( "id", String.valueOf( gate.getId() ) ); stream.addAttribute( "host", gate.getHost() ); for( Entry e : params.entrySet() ) { stream.startElement( "param" ); stream.addAttribute( "id", "dhcp." + e.getKey() ); stream.addAttribute( "value", e.getValue() ); stream.endElement( "param" ); } stream.endElement( "gate" ); } } catch( SAXException e ) { e.printStackTrace(); } } protected List getGateListFromTree( Gate root ) { List result = new ArrayList(); getGateListFromTree( result, root ); return result; } protected void getGateListFromTree( List list, Gate root ) { if( root != null ) list.add( root ); if( root.getChildren() != null ) for( Gate gate : root.getChildren() ) { getGateListFromTree( list, gate ); } } |
Автор: | mrustik [ 19 мар 2010, 10:09 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Up |
Автор: | stark [ 19 мар 2010, 13:03 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
глюк библиотеки скриптов . замените у себя вот это файл в паке lib: http://bgbilling.ru//tmp/bsh.jar Это библиотека скомпилированная из svn . будет работать. последняя, собранная на официальном сайте, не работает . эта новее . В следущей версии заменим версию библиотеки . А пока руками замените |
Автор: | mrustik [ 22 мар 2010, 10:32 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
Почему в скриптовом шлюзе DHCP, после вызова шлюзом Cisco2 Код: String host = child.getHost(); int port = child.getPort(); int gid = child.getId(); Код: String host = gate.getHost(); int port = gate.getPort(); int gid = gate.getId(); host, port и gid параметры шлюза Cisco2, а не DHCP. Соответственно поключиться к потоку XML не получается. |
Автор: | stark [ 22 мар 2010, 12:31 ] |
Заголовок сообщения: | Re: Связка Dhcp+Cisco2+Zyxel |
mrustik писал(а): Почему в скриптовом шлюзе DHCP, после вызова шлюзом Cisco2 Код: String host = child.getHost(); int port = child.getPort(); int gid = child.getId(); Код: String host = gate.getHost(); int port = gate.getPort(); int gid = gate.getId(); host, port и gid параметры шлюза Cisco2, а не DHCP. Соответственно поключиться к потоку XML не получается. я так и не понял первый участок кода или второй ? второй должен возращать данные шлюза dhcp |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |