JavaRush /Java блог /Random UA /Огляд серверів програм і, звичайно, Tomcat
eGarmin
41 рівень

Огляд серверів програм і, звичайно, Tomcat

Стаття з групи Random UA
Дорогі джаварашівці, що я хочу розглянути у цій статті? Я просто хочу зробити невеликий огляд тієї частини серверів додатків, які заслуговують на увагу хоча б тим, що є безкоштовними і доступний їх вихідний код. Я виходитиму з того, що ваша система подібна до моєї. У мене стоїть Windows 7 64 біта, крім того, у мене стоїть JDK 1.7 і JDK 1.8, а змінна оточення JAVA_HOME посилається на останній з них. У моєму випадку це означає, що в JAVA_HOME прописаний шлях C: Program Files Java Jdk1.8.0_31. Огляд серверів додатків і, звичайно, Tomcat - 1Щоб у вас при повторенні нижче описаного виникало якнайменше питань типу «а чому у мене не вийшло, може я щось не так роблю?», я намагатимуся описувати кожну дію, яку я робив на своїй машині. Починаємо…

Кастинг, тобто. відбір

Для початку потрібно відібрати сервери програм для нашого огляду. І тому на вікіпедії дивимося статтю Comparison of application servers (англ., т.к. інший немає). Там є табличка з купою серверів додатків, але нас інтерес представляють лише ті, які, з одного боку, opensource, з другого, підтримують JavaEE на повну, тобто. стовпець Java EE compatibility у цій таблиці повинен містити рядок типу Full Platform . З цього списку, в якому є і WildFly і JBoss відразу можна викинути останній, т.к. це просто стара назва і старі версії WildFly . В результаті отримуємо наступний список серверів, які заслуговують на нашу увагу:
  1. Glassfish (не пропрієтарний, а той, що від спільноти glassfish.java.net , але який підтримується корпорацією Oracle настільки, що якщо потрібен javaEE SDK з сайту Oracle, то тобі впиндюрять і цей сервер додатків, інакше ніяк)
  2. (Red Hat) WildFly (колишній JBoss)
  3. (Apache) Geronimo
  4. (Apache) Tomcat (це лише контейнер сервлетів, а не сервер додатків, але він є таким еталоном, на якому, якщо програма написана правильно, вона точно запрацює. На інших серверах програма може бути написана правильно з точки зору JavaEE, але працювати все одно буде не коректно або взагалі не буде. Це я про Geronimo, про глюки якого можна говорити довго)
Тепер давайте накачаємо цих серверів. Де можна було вибрати між 32-х і 64-хбітними версіями, я вибирав архівчик під мою систему в 64 біти.

Встановлення

У плані встановлення все просто і для кожного з вибраних серверів встановлення – це просто розпакування архіву. Я, наприклад, створив папку AppServers на робочому столі, куди і почав все розпаковувати.

Налаштування

Налаштування серверів почнемо з налаштування порту HTTP, на якому він працюватиме. Потім пропишемо себе як адмін сервера. Для кожного із серверів є свої особливості налаштування. Для Tomcat. Заходимо в папку з розпакованим tomcat, далі папка conf , файл server.xml . Знаходимо в цьому файлі число 8080 (http порт за замовчуванням) і змінюємо його, на що захочемо. Я поставив 9713 . Щоб прописати себе як адмін сервера, потрібно, перебуваючи в цій же папці, відкрити файл tomcat-users.xml . У ньому перед закриваючим тегом </tomcat-users> прописати наступний тег <user username="egarmin" password="1" roles="manager-gui,manager-script,manager-status,manager-jmx"де у своїй ролі я прописав максимальну кількість будь-яких адмінських прав (ролей). Це дозволить мені деплоїти програми і через gui, і через віддалене підключення. Тепер запустимо tomcat. Заходимо до папки з розпакованим tomcat, далі папка bin і запускаємо файл startup.bat . Переходимо у браузері за адресаою http://localhost:9713 . Повинне все заробити, і ми побачимо тигру. TomcatТепер перевіримо наявність доступу до адмінки. Для цього переходимо за адресаою http://localhost:9713/manager , вводимо вибрані логін та пароль та отримуємо доступ. Адмінка у TomcatУРА! Можна тимчасово вимкнути Tomcat, для цього достатньо закрити консоль, в якій він працює. Для Glassfish. Заходимо до папки з розпакованимglassfish , далі в підпапку glassfish , далі під папка domains , потім у папку domain1 . Заходимо до папки config і знаходимо файл domain.xml . Там також шукаємо число 8080 (це число взагалі характерне як http-порт за промовчанням для серверів додатків і контейнерів сервлетів) і змінюємо його на що захочемо. Я поставив 9813 . Запустимо glassfish. Заходимо в папку з розпакованим glassfish, далі в підпапку glassfish , потім у папку bin . Запускаємо файл startserv.bat . У браузері вводимо адресау http://localhost:9813. На негарній сторінці з заголовком GlassFish Server знаходимо посилання go to the Administration Console і тиснемо на неї. Перший вхід до GlassFishДалі, потрапивши на красиву побудовану на JSF сторінку адміністративної консолі, тиснемо пункт Change Administrator Password Адмінка у GlassFish і вводимо потрібний пароль для користувача admin , потім підтверджуємо його і тиснемо кнопку Save . Зміна пароля у GlassFishПри наступних входах до адміністративної консолі потрібно буде вказувати логін admin та заданий пароль. Вхід до адмінки GlassFish за паролемТепер можна тимчасово відключити Glassfish , для цього достатньо закрити консоль, в якій він працює. Для WildFly. Заходимо до папки з розпакованимwildfly . Далі заходимо до папки standalone , потім папка configuration , а в ній файл standalone.xml . Далі діємо за налагодженою схемою. Я поставив порт 9913 . Запустимо сервер. Для цього перейдемо в папку з розпакованим wildfly . Далі заходимо до папки bin і запускаємо файл standalone.bat . Відкриваємо браузер і вводимо адресау http://localhost:9913 . Перший вхід до WildFlyТиснемо посилання Administration Console для входу в адмінську консоль (простіше кажучи, адмінку сервера додатків). Але тут було, т.к. спливає екран. Перший вхід до адмінки WildFlyЦей екран повідомляє нам, що адмін не створений, і щоб його створити, потрібно скористатися консольною утилітою add-user.bat . Ну, якщо треба так треба. Повертаємося в папку bin і запускаємо цю утиліту. Спочатку запропонують вибрати тип користувача, якого хочемо створити. Треба вибрати пункт (a) , що означатиме, що нам потрібний адмін. Потім запитується ім'я цього користувача Username та пароль Password . Порожнім пароль бути не може, але односимвольним – будь ласка. Утиліта звичайно посвариться, але проковтне, якщо їй відповісти yes на запитання «Ви впевнені?». Далі підтверджуємо пароль повторним введенням на запит Re-enter Password. Потім будуть ще питання, але на них все просто відповідаємо ствердно та виходимо з утиліти. Повернувшись на сторінку вище, знаходимо посилання на Try Again і тиснемо на неї. Тепер, ввівши дані щойно створеного адміністратора, можна потрапити до адмінки. Адмінка у WildFlyГасимо сервер, закривши вікно консолі, через яку він був запущений. Для Geronimo. Заходимо в папку з розпакованим geronimo . Далі в підпапку var , потім у папку config , а в ній файл config-substitutions.properties . У цьому файлі описані всі порти, що використовуються сервером додатків у зручному форматі, але схема заміни порту та ж. Я поставив порт 10013 . Запустимо сервер geronimo. Перейдемо в папку з розпакованим geronimo , потім у підпапку bin і запустимо там файл startup.bat . Переходимо на сторінку http://localhost:10013. Щоб ви думали? Скоріш за все, сторінки там не буде. Чому? Вся справа в тому, остання версія Geronimo (3.0) не може працювати з останньою версією JDK (1.8), тому якщо у вас стоїть тільки вона чи навіть нехай є, скажімо, 7-а версія, але змінна оточення JAVA_HOME все одно посилається саме на 8-му, як у мене, то запуск сервера додатків не відбудеться. Таким чином, для роботи Geronimo потрібно обов'язково завантажити JDK 1.7. Тепер припустимо ви поставабо 7-й JDK, але не хочете змінювати значення змінної JAVA_HOME (врешті-решт інші програми на неї не скаржаться, а значить нехай і працюють з останньою версією JDK). Що робити? Я раджу відкрити файл setjavaenv.bat , розташований у тій же папці bin , і знайти рядок з міткою :okJdkFileCheck. Після чого на наступному рядку додайте перевизначення змінної оточення. Наприклад, так: set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_75 Цього рядка там немає, тому будьте ласкаві прописати його самостійно. Якщо у вас 32-бітна система, то більше проблем не повинно бути. Більше того, якщо у вас 64-бітна система і ви поставабо JDK 1.7 саме в 64-бітній комплектації, то у вас також все в шоколаді. А тепер уявімо, що ми вирішабо перекрутитися і поставити на 64-бітну систему (у мене, наприклад, Windows 7 64) JDK 1.7 з лінійки в 32 біта. Що тоді? Тоді доведеться ще повозитися, тому що в 64-бітній системі є дві папки для встановлення програм: Program Files та Program Files (x86)і якщо нічого не змінювати, то 32-хбітний JDK стане саме в останню. Що у цьому страшного? Та начебто нічого, однак, якщо змінна JAVA_HOME матиме у своєму шляху дужки (x86), то у Geronimo трапляється нетравлення. Чому? Чорт його знає, особливо якщо врахувати, що згідно з даними з форумів, цю помилку в 3-й версії Geronimo мали виправити. Але ні фіга подібного. Головне в цій справі не робити пі-пі, якщо індіанці не виправабо, то виправимо. Для цього є два способи, які я волію комбінувати, щоб напевно. По-перше, знову йдемо файл setjavaenv.bat і знаходимо вже згадану мітку :okJdkFileCheck . Під цією міткою є рядокif "%JRE_HOME%" == "" if exist "%JAVA_HOME%\bin\javac.exe" (set JRE_HOME=%JAVA_HOME%\jre) else set JRE_HOME=%JAVA_HOME% в якій для лікування Geronimo достатньо буде взяти підрядок JRE_HOME =%JAVA_HOME%\jre в лапки, тобто. замінити весь рядок на if "%JRE_HOME%" == "" if exist "%JAVA_HOME%\bin\javac.exe" (set "JRE_HOME=%JAVA_HOME%\jre") else set JRE_HOME=%JAVA_HOME% . Крім того, пам'ятайте або знайте, що у папок типу Program Files у Windows 7 є синоніми (наприклад, для папки C:\Program Files (x86) синонімом буде папка C:\Progra~2 ). Тому якщо ви у файлі setjavaenv.bat після мітки :JAVA_HOME set JAVA_HOME=C:\Progra~2\Java\jdk1.7.0_75 то у вас теж запрацює сервер Geronimo під управління 32-х бітного JDK в 64-х бітній операційній системі. Якось так ... Ну, нарешті, можна і запускати Geronimo , викликавши startup.bat . Тепер проблем не повинно бути. Переходимо у браузері на сторінку http://localhost:10013 . Зліва нагорі знаходимо посилання Console і тиснемо на неї. GeronimoПотрібно ввести адмінські логін та пароль. Відразу підкажу, що це користувач системи з паролем manager (значення за замовчуванням). Вхід до адмінки Geronimo за паролемПройшовши в саму консоль і пройшовши по пунктах меню як на малюнку нижче (вибрати радіобатон Advanced, потім вибрати Security > Users and Groups ), можна як змінити пароль для користувача system , так і створити іншого адмінського користувача, а цього видалити. Зміна пароля в GeronimoЗупинити сервер Geronimo можна також простим закриттям вікна консолі, в якому був запущений сервер.

Висновок

У цьому огляді я, по суті, просто провів установку та початкове настроювання популярних серверів додатків та контейнера сервлетів Tomcat. За винятком Geronimo, решта серверів була дуже доброзичливою до мене і виявила гостинність. У наступному пості я продовжу розгляд серверів додатків і зроблю третій крок на шляху розгляду веб-сервісів, а саме, покажу як задеплоїти описаний на першому етапі веб-сервіс в ці сервери. Для цього ми створимо war-архів нашого веб-сервісу, і я наочно покажу, що набір сторонніх jar-ників, які треба включати до цього архіву для коректної роботи сервісу, сильно змінюється від сервера до сервера.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ