forum.bitel.ru
http://forum.bitel.ru/

Странная ошибка
http://forum.bitel.ru/viewtopic.php?f=44&t=7092
Страница 1 из 1

Автор:  madmax [ 11 авг 2012, 23:27 ]
Заголовок сообщения:  Странная ошибка

Пытаемся протестировать устройство с модулем Inet и в результате получаем непонятную ошибку.
Код:
mq 08-11/12:59:11 ERROR [event-proc-p-2-t-1] Consumer$EventListenerRunnable - BG.Event.ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingEvent: null
javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x0) was found in the value of attribute "cnsId" and element is "connection".]
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:315)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:523)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:220)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:189)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:194)
        at ru.bitel.bgbilling.kernel.event.MessageAdapter.parseMessage(MessageAdapter.java:203)
        at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:78)
        at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x0) was found in the value of attribute "cnsId" and element is "connection".
        at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
        at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:216)


При этом radius дает accept но в мониторе ничего не появляется.
Интересно то что на сервере запущены два экземпляра InetAccess на разных портах для разных железок но почему-то ошибка появляется на обоих логах access серверах

Автор:  madmax [ 12 авг 2012, 19:26 ]
Заголовок сообщения:  Re: Странная ошибка

Как выяснилось радиус пакте приходит с полем calling_station_id в octets и мы получаем данную ошибку.
если в файле directory.xml заменить string на octets то в логах появляется другая ошибка
RadiusListenerWorker - [B cannot be cast to java.lang.String
Код:
java.lang.ClassCastException: [B cannot be cast to java.lang.String
        at ru.bitel.bgbilling.kernel.network.radius.RadiusAttributeSet.getStringAttribute(RadiusAttributeSet.java:380)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1508)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1326)
        at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:383)
        at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:501)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:445)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:151)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)

В модуле DialUp был скрипт который нормально отрабатывал
Код:
callingStationId = request.getAttribute( -1, RadiusDictionary.Calling_Station_Id );
request.setStringAttribute( -1, RadiusDictionary.Calling_Station_Id, Utils.bytesToHexString( callingStationId.getDataAsByteArray() ) );

Но вот такой же код ничего не изменяет также появляются вышеуказанные ошибки
Код:
@Override
public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
throws Exception
{
RadiusAttribute CallingStationId = request.getAttribute( -1, RadiusDictionary.Calling_Station_Id );
request.setStringAttribute( -1, RadiusDictionary.Calling_Station_Id, Utils.bytesToHexString( CallingStationId.getDataAsByteArray() ) );
}
@Override
public void preprocessAccountingRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
throws Exception
{
RadiusAttribute CallingStationId = request.getAttribute( -1, RadiusDictionary.Calling_Station_Id );
request.setStringAttribute( -1, RadiusDictionary.Calling_Station_Id, Utils.bytesToHexString( CallingStationId.getDataAsByteArray() ) );
}

Что не так не пойму.

Автор:  Amir [ 13 авг 2012, 14:18 ]
Заголовок сообщения:  Re: Странная ошибка

После изменения сделали Сохранить и скомпилировать, а потом Перечитать конфигурация на серверах?
Вроде бы должна сработать предобработка нормально.

Автор:  madmax [ 13 авг 2012, 14:44 ]
Заголовок сообщения:  Re: Странная ошибка

Да делал, но ошибка так и осталась.
Я даже перезапускал службы access и accounting

Автор:  Amir [ 13 авг 2012, 14:54 ]
Заголовок сообщения:  Re: Странная ошибка

А сессия та, что началась до того, как добавили предобработку, все еще была активна?
Возможно дело в ней, а новые уже будут работать нормально.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/