forum.bitel.ru http://forum.bitel.ru/ |
|
Кодировка запросов idealer http://forum.bitel.ru/viewtopic.php?f=22&t=12301 |
Страница 1 из 1 |
Автор: | m0nk3y [ 15 мар 2017, 16:21 ] |
Заголовок сообщения: | Кодировка запросов idealer |
БД в кодировке cp1251. В версии 5.2. Код: XX.XX.XX.XX E3762D44DC1BBFCF4D2B6639AC0E134E [14/Mar/2017:16:28:39 +0300] 0.012 200 222 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=1936%C8%2F12&accurate=true HTTP/1.1" contract_title_1=1936И/12&accurate=true&action=ContractFind&mid=10& В версии 6.2 Код: XX.XX.XX.XX 745CB3ECFD34FB698DEBE2299C1294FE [15/Mar/2017:12:53:48 +0300] 0.016 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=917Ñ/12&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=917Ñ/12&accurate=true& XX.XX.XX.XX 0C709D93D1F083EB78EE19E0093173C0 [15/Mar/2017:12:10:53 +0300] 0.014 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=197%C8%2F11&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=197È/11&accurate=true& Проблемные договора имеют вид XXX И/ ГОД, так вот с этим И проблемы. В 5.2. %C8%2F нормально интерпетировалось в И/ Локаль не менялась. Код: locale LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=ru_RU.UTF-8 Код: Информация о версии:
Клиент: вер. 6.2.854 / 22.02.2017 19:04:14 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_71 Сервер: вер. 6.2.1163 / 10.03.2017 18:11:08 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_121 Сервер: os: Linux amd64, 3.2.0-4-amd64 java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_121 jre home: /usr/lib/jvm/jdk-8-oracle-x64/jre default tz: 15.03.2017 13:13 MSK +0300 (Europe/Moscow) db time: master: 15.03.2017 13:13 MSK, slave@2: 15.03.2017 13:13 MSK db charset: connection: cp1251(cp1251_general_ci), database: cp1251(cp1251_general_ci) locale: ru_RU |
Автор: | dimOn [ 15 мар 2017, 18:10 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
а страница idealer в какой кодировке приходит? можете в браузере показать? |
Автор: | m0nk3y [ 15 мар 2017, 18:17 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
<?xml version="1.0" encoding="UTF-8"?> <data error_code="3" status="error">Отсутствуют и/или неправильные параметры</data> |
Автор: | m0nk3y [ 15 мар 2017, 19:23 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
Код: SEND: GET http://xx.xx.xx.xx:8282/bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=917%E0&accurate=true HTTP/1.1 RESV: Server: Apache-Coyote/1.1 RESV: Set-Cookie: JSESSIONID=25FDCA902DCCB946071A18BED14B902D; Path=/; HttpOnly RESV: Cache-control: no-cache, no-store, must-revalidate RESV: Last-Modified: Thu, 01 Jan 1970 00:00:01 GMT RESV: Expires: Thu, 01 Jan 1970 00:00:01 GMT RESV: Content-Type: text/xml;charset=UTF-8 RESV: Transfer-Encoding: chunked RESV: Date: Wed, 15 Mar 2017 13:14:33 GMT RESV: <?xml version="1.0" encoding="UTF-8"?> <data error_code="8" status="error">Договор не найден</data> Цитата: XX.XX.XX.XX 3E2BDB32C7A4544A82C04ACDDD029011 [15/Mar/2017:16:22:20 +0300] 0.011 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=917%F0%2F12&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=917ð/12&accurate=true&
|
Автор: | m0nk3y [ 15 мар 2017, 20:10 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
На тестовой машине все начало работать после того как раскомментил в webroot/WEB-INF/web.xml следующие блоки: Код: <!--Убрано в версии 5.3, пока оставить, возможно, отдельным модулям надо будет перенести эти настройки. --> <filter> <filter-name>SetCharacterEncodingFilter</filter-name> <filter-class>ru.bitel.common.server.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>Cp1251</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>false</param-value> </init-param> </filter> Код: <!--Убрано в версии 5.3, пока оставить, возможно, отдельным модулям надо будет перенести эти настройки. --> <filter-mapping> <filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Насколько корректно будет работать при такой конфигурации биллинг? |
Автор: | dimOn [ 15 мар 2017, 20:19 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
Это и хотел предложить попробовать, 1) вернуть фильтр обратно 2) попробовать повесить какой есть. Нет, на все (/*) вешать не надо! Вот так попробуйте сначала UTF-ный, как на остальных: Код: <filter-mapping> <filter-name>SetCharacterEncodingFilterUTF8</filter-name> <url-pattern>/idealer</url-pattern> </filter-mapping> Если не получится вот такой повесьте тогда, это то что вы написали, только на конкретный сервлет /idealer: Код: <filter-mapping> <filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>/idealer</url-pattern> </filter-mapping> Если получится то или иное - сделаем искаропки этот фильтр, потмоу что непонятно почему так получается. |
Автор: | m0nk3y [ 15 мар 2017, 20:36 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
работает с Код: <filter-mapping> <filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>/idealer</url-pattern> </filter-mapping> Фильтр SetCharacterEncodingFilterUTF8 нам не подходит по причине php urlencode на стороне дилера, Т.е. я это спокойно оставляю? |
Автор: | dimOn [ 15 мар 2017, 20:49 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
Хм, а причём тут php urlencode, поясните? Фильтр лишь проставляет для реквеста входящего кодировку. Вы в смысле снаружи где-то дёргаете это всё? С SetCharacterEncodingFilterUTF8 точно не работает? А в нашей сборке должно с utf-8 быть. Вообще это как-то неправильно, надо починить же нормально. В общем, всё уберите пока как было и обновите вашу 6.2, проверьте. Ошибка была отловлена и фильтр проставлен в коде, у нас протестировано - всё кажется корректно работает. |
Автор: | dimOn [ 15 мар 2017, 20:49 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
обновление будет в течение 15 минут |
Автор: | m0nk3y [ 15 мар 2017, 20:57 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
И/ приходит к нам как %C8%2F в билде 1164 интерпретируется как 10.11.12.243 6C4360493A946551A3E391F95330C07A [15/Mar/2017:17:54:15 +0300] 0.020 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=102%C8%2F10&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=102�/10&accurate=true& |
Автор: | dimOn [ 15 мар 2017, 22:03 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
так вы всё же поясните: откуда приходит то? извне откуда-то? из страницы idealer так не должно приходить. оттуда приходило в utf-8 даже раньше, просто до этого без фильтра оно билось при разборе в latin1 (вероятно). вы показываете не как интерпретируется, а что залогировалось же, это от локали зависит сервера а вам приходит в cp1251 откуда-то. ну вам придётся наверно руками вешать всё же фильтры, потому что починка касается работы стандартного idealer, а там везде utf-8 и меняться это не будет |
Автор: | dimOn [ 15 мар 2017, 22:06 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
а, да, раньше когда-то было 1251 всё верно, и урлы закодированные такими были вам тогда надо явно encoding слать из вашей сторонней системы вместе с запросом (фильтр работает только когда явно со стороны не задано как раз) или всё же перекодировать урл чтобы он кодировался в utf-8. Но возможно поможет прописывание фильтра как вы сделали, но в таком случае будет висеть два фильтра, не уверен что это нормально сработает, проверьте если нормально всё , то оставьте |
Автор: | m0nk3y [ 16 мар 2017, 13:04 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
Фильтр на /idealer cp1251 не срабатывает. Переделали encoding на UTF-8. Кстати вроде бы баг еще один нашел, если в "Новом менеджере платежей" поискать за определенный период платежи, то они выведутся например с 15.03-15.03, если затем выбрать 16.03-16.03 то поиск выдаст пустой результат, закрываем-открываем менеджер, поиск начинает работать |
Автор: | dimOn [ 16 мар 2017, 17:53 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
После обновления фильтры вообще уберите, они устанавливаются в коде и должно без изменения web.xml всё работать, проверяли? Но снаружи если кодируете в cp1251 то надо явно ещё кодировку ставить в заголовках (в Content-Type например), но это так себе способ. Новый менеджер платежей - это что и где именно |
Автор: | m0nk3y [ 16 мар 2017, 20:29 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
Да именно без изменения с UTF8 все работает. Новый менеджер платежей это в модуле "Карты и удаленные платежи" |
Автор: | skn [ 17 мар 2017, 00:01 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
что то не воспроизводится, может это как то связано со страницами типа за 15 число две страницы и перейдя на вторую страницу, сменив дату, платежей за 16 не будет если они все уместились на 1 странице |
Автор: | m0nk3y [ 17 мар 2017, 01:01 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
не совсем так. Был диапазон 16.03- ПУСТО были данные диапазон 15-15 есть данные 16-16 - нет данных |
Автор: | skn [ 17 мар 2017, 01:18 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
не получается повторить нужны логи запросов от клиента биллинга + содержимое БД |
Автор: | m0nk3y [ 17 мар 2017, 01:26 ] |
Заголовок сообщения: | Re: Кодировка запросов idealer |
сейчас проверил с видовой машины, на ней установлена ява 1.8.0_121 все ок. На проблемном клиенте 1.8.0_71. Видимо в этом дело. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |