Дорогі джаварашівці, що я хочу розглянути у цій статті? Я просто хочу зробити невеликий огляд тієї частини серверів додатків, які заслуговують на увагу хоча б тим, що є безкоштовними і доступний їх вихідний код. Я виходитиму з того, що ваша система подібна до моєї. У мене стоїть Windows 7 64 біта, крім того, у мене стоїть JDK 1.7 і JDK 1.8, а змінна оточення
JAVA_HOME посилається на останній з них. У моєму випадку це означає, що в
JAVA_HOME прописаний шлях
C: Program Files Java Jdk1.8.0_31. Щоб у вас при повторенні нижче описаного виникало якнайменше питань типу «а чому у мене не вийшло, може я щось не так роблю?», я намагатимуся описувати кожну дію, яку я робив на своїй машині. Починаємо…
Кастинг, тобто. відбір
Для початку потрібно відібрати сервери програм для нашого огляду. І тому на вікіпедії дивимося статтю
Comparison of application servers (англ., т.к. інший немає). Там є табличка з купою серверів додатків, але нас інтерес представляють лише ті, які, з одного боку, opensource, з другого, підтримують JavaEE на повну, тобто. стовпець
Java EE compatibility у цій таблиці повинен містити рядок типу
Full Platform . З цього списку, в якому є і
WildFly і
JBoss відразу можна викинути останній, т.к. це просто стара назва і старі версії
WildFly . В результаті отримуємо наступний список серверів, які заслуговують на нашу увагу:
- Glassfish (не пропрієтарний, а той, що від спільноти glassfish.java.net , але який підтримується корпорацією Oracle настільки, що якщо потрібен javaEE SDK з сайту Oracle, то тобі впиндюрять і цей сервер додатків, інакше ніяк)
- (Red Hat) WildFly (колишній JBoss)
- (Apache) Geronimo
- (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 . Повинне все заробити, і ми побачимо тигру.
Тепер перевіримо наявність доступу до адмінки. Для цього переходимо за адресаою
http://localhost:9713/manager , вводимо вибрані логін та пароль та отримуємо доступ.
УРА! Можна тимчасово вимкнути 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 і тиснемо на неї.
Далі, потрапивши на красиву побудовану на JSF сторінку адміністративної консолі, тиснемо пункт
Change Administrator Password і вводимо потрібний пароль для користувача
admin , потім підтверджуємо його і тиснемо кнопку
Save .
При наступних входах до адміністративної консолі потрібно буде вказувати логін
admin та заданий пароль.
Тепер можна тимчасово відключити
Glassfish , для цього достатньо закрити консоль, в якій він працює.
Для WildFly. Заходимо до папки з розпакованим
wildfly . Далі заходимо до папки
standalone , потім папка
configuration , а в ній файл
standalone.xml . Далі діємо за налагодженою схемою. Я поставив порт
9913 . Запустимо сервер. Для цього перейдемо в папку з розпакованим
wildfly . Далі заходимо до папки
bin і запускаємо файл
standalone.bat . Відкриваємо браузер і вводимо адресау
http://localhost:9913 .
Тиснемо посилання
Administration Console для входу в адмінську консоль (простіше кажучи, адмінку сервера додатків). Але тут було, т.к. спливає екран.
Цей екран повідомляє нам, що адмін не створений, і щоб його створити, потрібно скористатися консольною утилітою
add-user.bat . Ну, якщо треба так треба. Повертаємося в папку
bin і запускаємо цю утиліту. Спочатку запропонують вибрати тип користувача, якого хочемо створити. Треба вибрати пункт
(a) , що означатиме, що нам потрібний адмін. Потім запитується ім'я цього користувача
Username та пароль
Password . Порожнім пароль бути не може, але односимвольним – будь ласка. Утиліта звичайно посвариться, але проковтне, якщо їй відповісти yes на запитання «Ви впевнені?». Далі підтверджуємо пароль повторним введенням на запит
Re-enter Password. Потім будуть ще питання, але на них все просто відповідаємо ствердно та виходимо з утиліти. Повернувшись на сторінку вище, знаходимо посилання на
Try Again і тиснемо на неї. Тепер, ввівши дані щойно створеного адміністратора, можна потрапити до адмінки.
Гасимо сервер, закривши вікно консолі, через яку він був запущений.
Для 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 і тиснемо на неї.
Потрібно ввести адмінські логін та пароль. Відразу підкажу, що це користувач
системи з паролем
manager (значення за замовчуванням).
Пройшовши в саму консоль і пройшовши по пунктах меню як на малюнку нижче (вибрати радіобатон
Advanced, потім вибрати
Security > Users and Groups ), можна як змінити пароль для користувача
system , так і створити іншого адмінського користувача, а цього видалити.
Зупинити сервер
Geronimo можна також простим закриттям вікна консолі, в якому був запущений сервер.
Висновок
У цьому огляді я, по суті, просто провів установку та початкове настроювання популярних серверів додатків та контейнера сервлетів Tomcat. За винятком Geronimo, решта серверів була дуже доброзичливою до мене і виявила гостинність. У наступному пості я продовжу розгляд серверів додатків і зроблю третій крок на шляху розгляду веб-сервісів, а саме, покажу як задеплоїти описаний
на першому етапі веб-сервіс в ці сервери. Для цього ми створимо war-архів нашого веб-сервісу, і я наочно покажу, що набір сторонніх jar-ників, які треба включати до цього архіву для коректної роботи сервісу, сильно змінюється від сервера до сервера.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ