JAVA EE: Разработка web-приложения. Подготовка.
Поиск по сайту:
О разработчеке сайта
Header image

Новые статьи и уроки JAVA

JAVA EE: Разработка web-приложения. Подготовка.

Перво-наперво, приступая к разработке, необходимо подготовить весь инструментарий.

В данной статье дан список необходимых средств для начала работы над веб-приложением: приведено описание нескольких серверов приложений, детально описан процесс установки и настройки GlassFish Application Server, MySQL Server.

Для работы web-приложения необходим в первую очередь сервер,а для использования возможностей технологии Java EE именно сервер приложений (Application Server).

Многим в первую очередь в голову может прийти Apache/Tomcat, но он не является сервером приложений, а лишь контейнером сервлетов (Servlet Container). В чем разница? В том что он не поддерживает технологию EJB, и, если первые статьи возможно будет реализовывать с использованием Tomcat, то, как только мы коснемся классов сущностей и сессионных компонентов, Tomcat'а уже будет недостаточно.

1Не используйте Apache/Tomcat при реализации примеров, описанных в данной серии статей.

В качестве сервера приложений можно использовать следующие:

JBoss - Java EE сервер приложений с открытым исходным кодом, разработанный одноимённой компанией. В данный момент принадлежит компании Red Hat.

WebLogic - сервер приложений от Oracle.

WebSphere - это целое семейство программных продуктов от IBM. Является одним из мощнейших решений для больших бизнес-проектов.

JRun - внезапно открывшийся для меня сервер приложений от компании Adobe, устаревшее, ненужное и вообще непонятно зачем когда-то родившееся творение, но при этом служит у некоторых солидных компаний (напр. Ectaco).

GlassFish - Open Source проект от Oracle (изначально разрабатывался Sun). Имеет в себе весь необходимых функционал для Java EE проектов. Особенностью можно выделить также дополненный компонентом Grizzly, использующим технологию Java NIO.

В статьях используется GlassFish Application Server.

В качестве СУБД взято еще одно творение Oracle (перенятое у Sun) - MySQL.

Среда разработки используемая в статьях -  NetBeans. Cвободная интегрированная среда разработки приложений (IDE) на языках программирования Java, JavaFX, Python, PHP, JavaScript, C++, Ада и ряда других.

1

Итак, повторим коротко то, что нам необходимо:

GlassFish GlassFish Aplication Server Скачать

Mysql MySQL Server СУБД Скачать

NetBeans NetBeans IDE Скачать (также ничто не мешает Вам использовать Eclipse, Intelij IDEA и др.)

Итак, начнем с установки и настройки GlassFish сервера.

Ниже приведен пример боевой настройки сервера на операционной системе Ubuntu 11.4Для приверженцев Windows-систем установка данного сервера проходит не тяжелее, чем установка того же офиса, скачиваете exe файл и следуете инструкциям инсталлятора.

 Этап 1. Создание пользователей.

 Ни в коем случае не допускайте возможность запуска GlassFish сервера под root правами. Фатально, опасно, безрассудно.

1Никогда не запускайте сервер с root правами.

Для это создадим отдельного пользователя

#Создание нового пользователя
glassfish sudo adduser --home /home/glassfish --system --shell /bin/bash glassfish #Создание новой группы пользователей
glassfish sudo groupadd glassfishadm #Добавление вновь созданного пользователя в новую группу
sudo usermod -a -G glassfishadm glassfish

 Этап 2. Установка Java JRE and JDK.

Если у вас не установлена Java-машина в системе, то самое время это сделать.

#Добавления репозитория
sudo add-apt-repository "deb archive.canonical.com/ lucid partner"
 
#Обновление
sudo apt-get update
 
#Собственно сама установка 
sudo apt-get install sun-java6-jdk sun-java6-jre

 Этап 3. Установка GlassFish.

 Теперь нам необходимо зайти под вновь созданным пользователем, распаковать сервер в /home/glassfish/ и настроить соответствующие права для пользователя.

#Заходим под новым пользователем
sudo su glassfish
 
#Создаем папку, в которую скачаем архив
cd /home/glassfish/
mkdir downloads
cd /home/glassfish/downloads/
 
#Загружаем и распаковываем сервер
wget download.java.net/glassfish/3.1.2/release/glassfish-3.1.2.zip
unzip glassfish-3.1.2.zip
 
#Переносим сервер
mv /home/glassfish/downloads/glassfishv3/* /home/glassfish/
 
#Выходим назад в root.
exit
 
#Настраиваем группу для директории
sudo chgrp -R glassfishadm /home/glassfish
 
#И настраиваем владельца
sudo chown -R glassfish /home/glassfish
 
#Даем возможность нужным файлам исполняться
sudo chmod -R +x /home/glassfish/bin/
sudo chmod -R +x /home/glassfish/glassfish/bin/

 По большому счету сервер готов. Можно даже стартовать его.

#Войдем под glassfish
sudo su glassfish
 
#Старт
/home/glassfish/bin/asadmin start-domain domain1
#Убедились что все хорошо
 
#Делаем стоп
/home/glassfish/bin/asadmin stop-domain domain1
 
#Выходим в root
exit

 Этап 4. Настройка сервера.

sudo su glassfish
 
#Смена мастер-пароля. Пока что он должен быть пустым (если пароль не пустой то он равен "Changeit").
/home/glassfish/bin/asadmin change-master-password --savemasterpassword=true
#Вводим новый пароль ==> newMastePass
 
/home/glassfish/bin/asadmin start-domain domain1
 
#Изменяем пароль администратора
/home/glassfish/bin/asadmin change-admin-password
#Вводим "admin" для имени (по умолчанию)
#Вводим новый пароль => NewAdminPass
 
 
/home/glassfish/bin/asadmin login
#user = admin
#password = ТewAdminPass
#Cохраняет в файл /home/glassfish/.asadminpass
  
#Изменение JVM параметров
#Посмотрим текущие jvm параметры
/home/glassfish/bin/asadmin  list-jvm-options
#Ставим новые
#Удаляем параметр -client /home/glassfish/bin/asadmin delete-jvm-options -- -client
#Добавляем парамет -server
#Необходимо чтобы сервер не интерпретировал код, а сразу компилировал в байт-код. /home/glassfish/bin/asadmin create-jvm-options -- -server #Перестартуем /home/glassfish/bin/asadmin stop-domain domain1 /home/glassfish/bin/asadmin start-domain domain1 #Еще раз посмотрим на параметры /home/glassfish/bin/asadmin list-jvm-options #Уберем x-powered-by параметр /home/glassfish/bin/asadmin set server.network-config.protocols.
protocol.http-listener-1.http.xpowered-by=false /home/glassfish/bin/asadmin set server.network-config.protocols.
protocol.http-listener-2.http.xpowered-by=false /home/glassfish/bin/asadmin set server.network-config.protocols.
protocol.admin-listener.http.xpowered-by=false exit
 

1Сервер GlassFish запущенный без root прав не может принимать соединения на 80 порту.


Этот факт можно легко обойти воспользовавшись утилитой командной строки для управления работы межсетевого экрана iptables.

 Что бы сделать проброс с 80 порта на порт сервера (по умолчанию 8080), выполните следующие команды:

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination localhost:8080

Где вместо eth0 поставьте код своего сетевого интерфейса.

С сервером всё.

Далее идет установка MySQL.

Установка MySQL

Здесь все гораздо проще.

sudo apt-get install mysql-server

 Во время установки Вам будет предложено назначить пароль на root доступ к СУБД.

Далее желательно создать отдельного пользователя в MySql.

shell> mysql -uroot -p 
mysql mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON *.* 
-> TO username@localhost -> IDENTIFIED BY 'password';

1Необходимо сразу проверить кодировку СУБД MySQL.

Во многих случаях СУБД MySQL настроена на кодировку Latin1 и не может правильно хранить кирилические символы. Что бы проверить как обстоять дела с вашей СУБД, выполните следующию команду:

mysql -u -p
>enter password:
mysql> show variables like 'charac%'

В идеале у вас должно выглядеть примерно так:

Кодировки СУБД MySQL

 Если вывод отличается необходимо поправить файл my.cnf в /etc/mysql/.

В секцию [mysqld] вставить

default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
init-connect='SET NAMES utf8;'
collation-server=utf8_general_ci

В секцию [mysql] вставить

default-character-set=utf8

После этих действий кодировка должна обновиться. Повторно проверьте кодировки выше описанной командой.

1

В отзывах мне писали, что бывают случаи, когда MySQL сервер отказывается стартовать с параметрами

default-character-set=utf8
default-collation=utf8_general_ci

в этом случае просто не добавляйте их, кодировки все равно должны обновиться.

И так мы полностью подготовили плацдарм для наших свершений на фронте Java EE.
В слудеющей статье мы непосредственно приступим к созданию веб-приложения.

26.07.2012

Комментарии

Пожалуйста, исправьте здесь:

iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination localhost:8080
так не работает,
а работает так:
iptables -t nat -A PREROUTING -i enp2s0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.16.0.1:8080



24.07.2017 Автор: Max
Извините, ip не верный) 127.0.0.1. Проклятый копи-паст)))

24.07.2017 Автор: Max