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

Ошибка при просмотре счета
http://forum.bitel.ru/viewtopic.php?f=14&t=6729
Страница 1 из 1

Автор:  mikos [ 25 апр 2012, 23:48 ]
Заголовок сообщения:  Ошибка при просмотре счета

Добрый вечер.

При попытке просмотреть созданный счет или сч.ф в ЛК или клиенте биллинга вижу пустой экран. При чем только некоторые договора так себя ведут.

Аттрибут title в xslt-шаблоне статичный.

Код:
<xsl:variable name="title" select="'ООО Рога и Копыта'" />


В логе server.error.log

Код:
server 04-25/21:42:53 ERROR [http-8443-7] XMLUtils - The value of attribute "title" associated with an element type "module" must not contain the '<' character.
org.xml.sax.SAXParseException: The value of attribute "title" associated with an element type "module" must not contain the '<' character.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at ru.bitel.common.XMLUtils.parseDocument(XMLUtils.java:255)
        at ru.bitel.common.XMLUtils.parseDocument(XMLUtils.java:234)
        at ru.bitel.common.XMLUtils.parseDocument(XMLUtils.java:229)
        at bitel.billing.server.bill.action.ActionViewDocs.doAction(ActionViewDocs.java:80)
        at bitel.billing.server.Executer.doModule(Unknown Source)
        at bitel.billing.server.Executer.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Unknown Source)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream - java.lang.NullPointerException
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at bitel.billing.server.bill.action.ActionViewDocs.doAction(ActionViewDocs.java:81)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at bitel.billing.server.Executer.doModule(Unknown Source)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at bitel.billing.server.Executer.doPost(Unknown Source)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
server 04-25/21:42:53 ERROR [http-8443-7] LoggingPrintStream -  at java.lang.Thread.run(Unknown Source)

Автор:  mikos [ 25 апр 2012, 23:53 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

Есть еще вот такая странность и закономерность - у этих договоров, у которых не отображаются документы, есть какой-то (имя пустое) залипший модуль в списке модулей договора. Удалить его оттуда не получается. По всей видимости при апгрейде на 5.1 как-то вышло.
Может из-за него?

Автор:  mikos [ 26 апр 2012, 18:33 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

UP

Очень актуально.

Автор:  Amir [ 26 апр 2012, 19:49 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

В имени какого-либо модуля есть символ '<'?
Похоже из-за этого проблема - xml счетов сгенерировались неправильно (хотя не совсем понятно пока).
После исправлении имени модуля нужно либо пересоздать счета, либо сделать что-то вроде
UPDATE bill_data_x SET xml=REPLACE( xml, 'title=\"my<module\"', 'title=\"my-module\"' ) WHERE id=1
(для начала лучше проверить на одном счете)

Автор:  mikos [ 26 апр 2012, 19:56 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

В том-то и дело, что в клиенте в именах модулей нет никаких символов <
Как в БД посмотреть? Возможно это как раз тот самый пустой модуль, который на скрине. Заодно его может можно как нибудь удалить?

Автор:  Amir [ 26 апр 2012, 20:02 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

Попробуйте сначала просто переименовать.
SELECT * FROM module
Поле title. И выполните лучше не через SQL редактор в клиенте биллинга.

Автор:  mikos [ 26 апр 2012, 20:06 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

Нету таких символов и пустых модулей...

Код:
mysql> SELECT * FROM module;
+----+---------------------------------------+---------------------------------------+------------------------------+---------+-----------+
| id | title                                 | package_client                        | package_server               | name    | config_id |
+----+---------------------------------------+---------------------------------------+------------------------------+---------+-----------+
|  1 | Сетевое подключение | bitel.billing.module.services.ipn     | bitel.billing.server.ipn     | ipn     |      NULL |
|  2 | Абонплата                    | bitel.billing.module.services.npay    | bitel.billing.server.npay    | npay    |      NULL |
|  3 | Отчеты                          | bitel.billing.module.services.reports | bitel.billing.server.reports | reports |      NULL |
|  9 | IP Телефония                 |                                       |                              | voiceip |      NULL |
| 10 | Бухгалтерия                |                                       |                              | bill    |      NULL |
|  7 | Антивирус                    |                                       |                              | drweb   |      NULL |
|  8 | Яндекс.Деньги             |                                       |                              | yamoney |      NULL |
|  6 | Платежные системы     | bitel.billing.module.services.mps     | bitel.billing.server.mps     | mps     |      NULL |
+----+---------------------------------------+---------------------------------------+------------------------------+---------+-----------+
8 rows in set (0.00 sec)

Автор:  Amir [ 26 апр 2012, 20:17 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

Попробуйте выбрать SELECT xml FROM bill_data_x WHERE id=
у счета, который не открывается и посмотреть эту xml.

Автор:  mikos [ 27 апр 2012, 15:10 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

Так и есть - в XML в БД действительно в ключевом слове module какая-то фигня, у тайтла открывающая одна кавычка и сразу стоит закрывающая скобка тега module (<module id="0" title=">). Да и ID модуля почему-то = 0. Что не так? Как пофиксить?

Код:
<module id="0" title="><params nds="0"></params><attributes account="40702810300000001034" address="192012, ?. ?????-?????????, ??. ?????????? ??????? ??? 120, ??? ?" dolz="???????? ??????? &quot;??????-?????&quot; ????????? &quot;?????&quot;" face="?????????? ????? ????????????" inn="7709356049" kpp="770901001" org_name="??? &quot;??????? ?????????? ????????&quot;" osn="???????????? ? 396 ?? 01.07.2010"></attributes></module>


По всей видимости к договору привязан какой-то левый модуль, которого нет, что в общем-то подтверждается скринами выше. Как посмотреть список привязанных модулей в БД у договора? Почистил бы...

Автор:  Amir [ 27 апр 2012, 15:27 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

Попробуйте посмотреть, не осталась ли какая-нибудь привязка к модулю, которого уже нет:
Код:
SELECT COUNT(*) FROM contract_module
LEFT JOIN module ON module.id=contract_module.cid
WHERE module.id IS NULL
Если есть, то таблицу contract_module сначала желательно забекапить, потом удалить лишние привязки:
Код:
DELETE contract_module.* FROM contract_module
LEFT JOIN module ON module.id=contract_module.cid
WHERE module.id IS NULL

Автор:  mikos [ 10 май 2012, 17:31 ]
Заголовок сообщения:  Re: Ошибка при просмотре счета

Спасибо, помогло. Вычистили.

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