Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем! Думаю, мой вопрос можно было бы адресовать в другую конференцию, поскольку решение проблемы может быть различными способами. Но может знатоки WSAS дадут более правильное решение. Ситуация: Есть стороннее корпоративное java-приложение, состоящее из нескольких EAR-модулей, и опубликованное в сети Интранет сервером WSAS 7.0.0.21. В приложении есть глюк. Для того, чтобы приложение корректно заработало после запуска WSAS необходимо выполнить "пробегание" по пунктам меню приложения (выполнить инициализацию модулей) в определенном порядке. Об этом заявили сами разработчики. Это нужно сделать один раз после запуска WSAS. Дословно их сообщение такое - "системный администратор после перезапуска WSAS должен ... пройтись через меню по каждому модулю, чтобы произошла инициализация приложений". Если этого не сделать, то возможны всякие ошибки в приложении - пропадают справочники, не выполняются те или иные операции. Почему у разработчиков возникает такая проблема и почему это нельзя поправить - обсуждать не хочется. Ежедневно ночью на сервере выполняются регламентные работы. Сервер WSAS останавливается и запускается в определнное время. Нужен костыль, чтобы после запуска WSAS происходила автоматическая инициализация модулей. URL вызова каждого модуля известен. Проблема в том, что при первом входе запрашивается логин и пароль. Их надо как-то подставить и авторизоваться в приложении, затем поочередно вызвать другие пункты меню (модули). Изменение кода разработчиков не допускается. Есть теоретическое решение: В браузер IE в раздел "Домашняя страница" запихнуть url-ы всех модулей, при запуске модулей ввести логин и пароль (один раз запомнить его в системе). Далее запускать IE тогда, когда вздумается. Логично сразу после запуска WSAS. Но сам понимаю, что это изврат. Какие ещё будут решения? Может написать EAR(WAR) модуль, который бы после запука WSAS занимался вызовом других модулей? Подскажите, а то замучались уже. С уважением, Семен Попов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 11:14 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Semen Popov, 1. Посмотреть как именно сделан запрос логина/пароля. Там вариантов не очень много, но могут быть нюансы. Рекомендую для этого использовать Firefox+firebug и отследить через него сетевые запросы. Нажав на сетевом запросе в Firebug (правая кнопка мыши), можно сгенерировать команду curl (Копировать как cURL) 2. Использовать wget или curl для аутентификации и дальнейшего "обхода" ссылок в нужном порядке. И там и там нужно будет настроить сохранение cookie между вызовами. 3. На основе п.2 сделать скрипт, который будет стартовать по факту запуска сервера приложений. Куда вставить скрипт - зависит от способа запуска/перезапуска сервера. Ну а то, что приложение не инициализируется нормально в процессе запуска - за это "выедать мозг" разработчикам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 11:52 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Евгений Хабаров, спасибо. 1. Команду curl получил. Сохранил временно в текстовый файл 2. Не могли бы дать пример запуска через wget или curl? И как настроить сохранение cookie между вызовами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 14:27 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Semen Popov, Как то так. cURLdel cookie.txt curl " http://myserver.local/login" -c cookie.txt --data "username=xxxxx&password=yyyyy" > curl_out1.txt curl " http://myserver.local/private/" -b cookie.txt -c cookie.txt > curl_out2.txt wgetdel cookie.txt wget --save-cookies=cookie.txt --keep-session-cookies --post-data "username=xxxxx&password=yyyyy" " http://myserver.local/login" -O wget_out1.txt wget --load-cookies=cookie.txt --save-cookies=cookie.txt --keep-session-cookies " http://myserver.local/private/" -O wget_out2.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 15:37 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Спасибо. Не получается. Код: sql 1. 2. Аналогично для wget. Системой Windows эти команды не распознаются. Насколько я знаю, в Linux эти команды включены, а в Windows надо искать аналоги. Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 16:33 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Semen PopovСпасибо. Не получается. Код: sql 1. 2. Аналогично для wget. Системой Windows эти команды не распознаются. Насколько я знаю, в Linux эти команды включены, а в Windows надо искать аналоги. Или я не прав? Нашел в инете 32-разрядную wget. Пробую. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 16:58 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Semen Popov, Да, штатно они в комплект ОС Windows не входят, но их версии для Windows существуют. cURL > Download Wget for Windows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 17:06 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Евгений Хабаров, большое спасибо. Все получилось. Но сейчас выяснилось, что этого недостаточно. Необходим еще один костыль. Приложение состоит из 10 EAR-модулей. Оказывается, еще необходимо соблюдать порядок запуска этих модулей. Точно известно, что один из модулей должен быть запущен предпоследним, а другой последним. Решается это просто. В консоли WSAS по каждому EAR-приложению можно установить порядок запуска. Но проблема в том, что порядок сбивается с каждым обновлением версии приложения. Необходим скрипт, который бы заменил порядок запуска этих приложений. Знаю, что номер запуска можно установить и в живую в конфигурационных файлах профиля WSAS, либо сделать это на скриптовом языке, понятном WSAS. Подскажите, куда можно покопать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 15:26 |
|
||
|
Костыль для правильной инициализации приложения
|
|||
|---|---|---|---|
|
#18+
Нашел, где можно изменить порядок запуска. Это папка "C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\[ Имя узла ]Cell\applications\[Имя приложения].ear". Внутри этой папки существует файл deployment.xml. За порядковый номер запуска приложения отвечает атрибут startingWeight="10" тега deployedObject . Теперь мне достаточно нарисовать батник, который бы перед запуском профайла WSAS сделал изменения в deployment.xml у нужных приложений. Только что проверил. Поменял значения атрибутов startingWeight у нужных приложений и запустил профайл. Затем в консоли WSAS увидел, что порядок запуска у этих приложений был изменен на выставленные мною значения, да и запуск EAR произошел в установленном мной порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 17:48 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38789060&tid=1600956]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 169ms |

| 0 / 0 |
