- Ubuntu Wiki
- JBoss
- Goals
- Current Packages
- Binary packages
- Source packages
- Debian
- Considerations
- Current JBoss binary tree
- Notes
- Ideas
- Dependencies
- Установка JBoss в Ubuntu 12.10
- Что такое JBoss?
- 1: Установка Java
- 2: Установка JBoss
- 3: Создание пользователя JBoss
- 4: Запуск сервера JBoss
- JBOSS 4.2.3 Manual
- Содержание
- Что такое JBoss
- Поддерживаемые форматы приложений
- Поставляемые в комплекте с JBoss конфигурации серверов
- Методы администрирования JBoss Server
- Структура дирректорий конфигурации сервера
- Запуск JBOSS
- Запуск сервисов и приложений при работающем JBoss
- Настройки безопасности
- Настройка портов
- Настройка RMI
- Настройки для подключения к БД
- Кластеризация
Ubuntu Wiki
JBoss
It can be quite difficult to install JBoss for people that just want to setup a JBoss installation.
Goals
Allow easy installation of JBoss and its many different projects — as shown on http://www.jboss.org/projects/download/
Current Packages
There are some packages within Ubuntu that are related to JBoss
Binary packages
These packages are within universe:
- libjboss-common-java — The JBoss Common Project
- libjboss-profiler-java — JBoss Profiler
- libjboss-serialization-java — JBoss Serialization
These packages currently only contain specific jar files related to the above JBoss projects.
ie: libjboss-common-java includes the jboss-common.jar file only.
The above packages are based on the information from http://wiki.jboss.org/wiki/JBossCommonProject
Source packages
There is also a source package within multiverse named jbossas4
Debian
There is some active work being done on debian svn in relation to JBoss:
However, they do not currently have an application server working yet.
Considerations
The libjboss-common-java package stores the library files (jar) within /usr/share/java, which is where all java related libraries / jar files are located within Ubunutu. Will need to keep this consistent.
There will be many different packages, created in a structured way.
Look at using the above JBoss Common Project information.
Current JBoss binary tree
Currently when you extract the binary zip file, it will create a specific tree, which JBoss will look for.
This information is most likely configurable somewhere within the extensive JBoss configuration files, as it will need to conform to current Ubunutu locations (ie: jar files located within /usr/share/java for example).
lib — contains the base jar files required for JBoss
endorsed — contains serializer, xalan and xercesImpl — required Apache jars
bin — scripts and main jar files for starting JBoss
client — client side jar files
server — JBoss server tree (this is where all the «guts» of JBoss is)
Notes
May implement own packages based on http://anonsvn.jboss.org/repos/
Most people that want JBoss actually want JBossAS.
Ideas
I think that there should be a Ubuntu package for each of the subversion repositories found at http://anonsvn.jboss.org/repos/ prefixed with jboss, and suffixed with java.
jboss-common-java
jboss-hibernate-java
jboss-jbossas-java
Not sure how to handle libraries however, as all java programs are basically just made up of lots of jar files. (which it seems Debian maintainers are calling libraries — in relation to libjboss-common-java package).
Dependencies
Sun JDK packages — either one of OpenJDK, 1.4.99 1.6.0 (JBossAS 4.x is not certified for JDK6 and has several bugs filed against JDK6 and higher)
Note: JbossAS 5 is GA as well as JBossAS 5.1.0 and supports and is certified for Java6
JBoss (последним исправлял пользователь 38 2010-06-29 01:53:25)
Источник
Установка JBoss в Ubuntu 12.10
Что такое JBoss?
Примечание: Данное руководство предназначено для 64-битной архитектуры.
JBoss – это производительный сервер приложений Java с открытым исходным кодом, разработанный компанией RedHat. Он предоставляет полную поддержку JavaEE 6 Webprofile, а это значит, что он поддерживает следующий набор программ «из коробки»:
- Servlet 3.0
- JSF
- Java Server Faces
- EJB
- JPA
- CDI
- Bean Validation
Сервер JBoss поддерживает и другие функции JavaEE, такие как JMS, JAX-RS и JAX-WS.
Примечание: Документацию сервера можно найти по этой ссылке.
1: Установка Java
Сначала нужно уточнить, установлен ли язык Java на сервер. Для этого запросите версию Java:
Если команда выводит следующую ошибку, значит, Java нужно установить:
-bash: java: command not found
Для установки Java используйте:
apt-get update
apt-get install openjdk-7-jdk
2: Установка JBoss
Далее нужно загрузить пакет актуальной версии JBoss (на момент написания статьи это 7.1.1).
Распакуйте полученный архив и переместите извлечённые файлы в /usr/local/share/jboss.
tar xfvz jboss-as-7.1.1.Final.tar.gz
mv jboss-as-7.1.1.Final /usr/local/share/jboss
3: Создание пользователя JBoss
Для запуска сервера JBoss нужен новый пользователь. Создать пользователя можно при помощи команды:
Передайте новому пользователю права на файлы JBoss.
chown -R appserver /usr/local/share/jboss
Затем нужно создать пользователя для панели управления JBoss.
su appserver
cd /usr/local/share/jboss/bin
./add-user.sh
Из предложенных программой вариантов выберите Management User, нажав «а», а затем введите имя пользователя и пароль.
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): a
Enter the details of the new user to add.
Realm (ManagementRealm) :
Username : app1
Password :
Re-enter Password :
Внимание: в строке Realm нужно задать значение ManagementRealm (это специальная область для консоли управления).
4: Запуск сервера JBoss
После этого можно запустить сервер JBoss при помощи команды:
./standalone.sh -Djboss.bind.address= yourserverip -Djboss.bind.address.management= yourserverip &
Здесь нужно указать bind address, поскольку в противном случае JBoss будет доступен только на локальном хосте. Если у вас нет постоянного IP-адреса, введите 0.0.0.0.
Чтобы убедиться, что всё работает должным образом, попробуйте открыть консоль управления:
http:// yourserverip :9990/console
Введите учётные данные пользователя, созданного при помощи add-user.sh.
Чтобы открыть развернутую root веб-страницу, нужно перейти по следующему url-адресу.
http:// yourserverip :8080/
На экране должна появиться страница со следующим текстом:
Welcome to AS 7
Your JBoss Application Server is running.
Чтобы остановить сервер, используйте следующую команду:
Источник
JBOSS 4.2.3 Manual
Содержание
Что такое JBoss
JBossAS — J2EE сервер приложений с открытым исходным кодом.
Cервер приложений — это программная платформа (software framework) предназначенная для эффективного исполнения процедур (программ, механических операций, скриптов) которые поддерживают построение приложений.
J2EE — Java Platform, Enterprise Edition. набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий. Основная цель спецификаций — обеспечить масштабируемость приложений и целостность данных во время работы системы. J2EE является промышленной технологией и в основном используется в высокопроизводительных проектах, в которых необходима надежность, масштабируемость, гибкость.
JMX — Java Management Extensions ( JMX ) — Java технология, которая поставляет инструменты для управления и мониторинга приложений, системных объектов, устройства (например, принтеров) и сервис-ориентированных сетей. Эти ресурсы представлены объектами, называемыми MBeans.
Поддерживаемые форматы приложений
Поставляемые в комплекте с JBoss конфигурации серверов
Минимальный (minimal) — включает сервис логирования, JNDI сервер и URL сканера развертывания, чтобы иметь возможность развертывания приложений. Это чистый сервер. Он без веб-контейнера, EJB или JMS поддержки. Это не J2EE 1.4 совместимая конфигурации.
EJB — Enterprise JavaBeans. спецификация технологии написания и поддержки серверных компонентов, содержащих бизнес-логику. Является частью Java EE.
JMS — Java Message Service. Cтандарт промежуточного ПО для рассылки сообщений, позволяющий приложениям, выполненным на платформе J2EE, создавать, посылать, получать и читать сообщения. Коммуникация между компонентами, использующими JMS, асинхронна (процедура не дожидается ответа на своё сообщение) и независима от исполнения компонентов.
По умолчанию(default) — является базой J2EE 1.4 Это наиболее часто используемые услуги, необходимые для развертывания приложений J2EE. Он не включает JAXR службы, службы IIOP, или любой из службы кластеризации.
Java API for XML Registries (JAXR)
IIOP (Internet Inter-Orb Protocol) используется GIOP для TCP/IP. IIOP является конкретной реализацией абстрактных определений GIOP.
GIOP (General Inter-ORB Protocol) — абстрактный протокол в распределённых объектных системах
Полный (all). Все конфигурации и все доступные услуги. Это включает в себя RMI / IIOP и службы кластеризации, которые не загружаются в конфигурации по умолчанию.
Если вы хотите знать, какие службы настроены в каждой из конфигураций, смотрите в файлах:
jboss-4.2.2/server/ /conf/
jboss-4.2.2/server/ /deploy
Методы администрирования JBoss Server
JBoss поставляется с несколькими возможными методами администрирования, которые должны быть защищены или удалены, чтобы предотвратить несанкционированный доступ к административным функциям при развертывании.
The JMX Console (путь: localhost:[ порт ]/jmx-console/ )
Обеспечивает доступ к произвольным администратративным параметрам, например выключение сервера, остановка услуг, внедрения новых услуг и т.д. Он может быть устанавливлен как и любые другие веб-приложения или удален.
The Web Console (путь localhost:[ порт ]/web-console/)
Использует сочетание апплета и HTML и обеспечивает тот же уровень доступа к администратративным функциям, что и JMX-console.war.
Tomcat info (путь localhost:[ порт ]/status?full=true)
Информация о запущенных компонентах
Структура дирректорий конфигурации сервера
Содержимое дирректории conf
Содержимое дирректории deploy
Запуск JBOSS
Запуск JBoss как приложения
Для запуска необходимо выполнить пакетный файл run с необходимыми параметрами:
Для остановки необходимо выполнить пакетный файл shutdown с необходимыми параметрами:
Запуск JBoss как сервис в Windows
Для данной цели можно воспользоваться Tanuki java service wrapper.
В таком случае у нас будет следующий пример: wrapper.exe -i ..\etc\conf\wrapper.conf
Вообще tanuki java service wrapper достаточно полезная утилита, которой возможно стоит посвятить отдельную статью в будущем.
Запуск сервисов и приложений при работающем JBoss
./server/ /deploy
При удалении или перемещении в эту папку файлов приложений, они будут сразу же развертываться с отображением результатов в лог-файлах.
Пример:
Удаляем файл ear-deployer.xml
Помещаем файл mail-service.xml в каталог deploy
Настройки безопасности
Чтобы закрыть доступ пользователей к какому либо сервису JBoss нужно раскомментировать параметры в файлах (например чтобы закрыть доступ к jmx-console):
deploy/jmx-console.war/WEB-INF/jboss-web.xml
deploy/jmx-console.war/WEB-INF/web.xml
Имя пользователя и пароль берутся из файла:
conf/login-config.xml
Который используюет параметры из файлов:
conf/props
jmx-console-roles.properties
jmx-console-users.propertie
Настройка портов
Имеется возможность указать JBoss серверу какие порты использовать для своей работы.
Для этого необходимо поменять на нужные номера портов значения в файлах:
port-bindings.xml (если данный файл задан в конфигурации conf/jboss-service.xml и задан ServiceBindingManager)
\server[server_name]\conf\jboss-service.xml
Посмотреть текущие используемые порты можно из Web Console.
Настройка RMI
RMI (Remote Method Invocation) — программный интерфейс вызова удаленных методов в языке Java.
В терминах RMI объект, который вызывает удаленный метод, называется клиентским объектом, а удаленный объект — серверным объектом.
Компьютеры выступают в роли клиента и сервера только для конкретного вызова. Вполне возможно, что при выполнении следующей операции эти компьютеры поменяются ролями, то есть сервер предыдущего вызова может сам стать клиентом при обращении к объекту на другом компьютере.
URL, который клиент может использовать для получения удаленной ссылки на объект. Эта ссылка применяется для вызова методов удаленного объекта. URL обычно имеет форму
rmi://хост: порт/ИмяУдаленногоОбъекта
где хост представляет собой имя компьютера, который выполняет сервер реестра (rmiregistry) для удаленных объектов (он также является компьютером, на котором выполняется удаленный объект),
порт представляет собой номер порта, на котором выполняется сервер реестра на хост-компьютере, а ИмяУдаленногоОбъекта — имя, которое клиент будет предоставлять при попытках обнаружить удаленный объект в реестре.
Для переопределения портов RMI в jboss необходимо изменить параметры RmiPort и RMIObjectPort в файле
\server[server_name]\conf\jboss-service.xml
Настройки для подключения к БД
Источники данных конфигурируются в файлах с суффиксом -ds.xml
Данные файлы могут лежать в дирректориях jboss/server/default/deploy либо jboss/server/default/farm при использовании кластерной конфигурации JBoss
Примеры конфигурационных файлов для подключения к БД можно увидеть в документации: jboss/docs/example/jca
Кластеризация
Самый простой вариант организации кластера на JBosss — это запуск нескольких экземпляров сервера в локальной сети с параметром -c all
Связь между узлами осуществляется c помощью коммуникационной библиотеки JGroups, которая предлагает основные функциональные возможности отслеживания узлов, которые находится в кластере и надежного обмена сообщениями между членами кластера.
Узлы могут быть динамически добавлены или удалены из кластеров в любое время, путем запуск и остановки канала с конфигурацией и именем, совпадающим с другими членами кластера.
По умолчанию 4.2.x А.S., создает четыре различных канала:
- копирование веб-сессии службы,
- EJB3 копирование SFSB службы,
- службы кэширования EJB3,
- ядро общего назначения службы кластеризации службы, известной как HAPartition
Политика Load-Balancing (Балансировщика Нагрузок)
Балансировка на стороне клиента
Типы балансировки на стороне клиента:
- Round-Robin — каждый запрос отправляется на новый узел, проходя последовательно по списку узлов. Первый узел случайно выбирается из списка.
- Random-Robin — для каждого запроса целевой узел выбирается случайным образом из списка.
- First Available — один из доступных узлов случайно выбирается в качестве основной мишени и затем использоваться для каждого вызова. Когда список целевых узлов измененяется (так как узел стартует или умирает), будет выбираться новый узел цель. Каждый клиент выбирает свой собственный целевоой узел независимо от других.
- First Available Identical All Proxies — имеет такое же поведение, как «First Available», но выбор целевого узла является общим для всех клиентов. Так что если два клиента используют одну и ту же целевую службы (например, EJB), каждый клиент будет использовать одну и ту же цель.
Развертывание приложения в кластер
Чтобы развернуть приложение в кластере, необходимо скопировать его в папку:
/farm/
После этого приложение будет автоматически развернуто на других узлах кластера.
Чтобы удалить приложение, достаточно удалить его из папки /farm/ на одном из узлов кластера и оно будет удалено и из других узлов.
Конфигурация farm-развертывания (множественное развертывание) доступна через файл farm-service.xml находящегося в директории deploy/deploy.last
Если необходимо включить поддержку farm-развертывания в вашу конфигурацию, то нужно скопировать файл farm-service.xml в дирректорию с вашей конфигурацией, например:
$JBOSS_HOME/server/your_own_config/deploy/deploy.last
Конфигурация cluster-service.xml
Известные проблемы кластеризации в JBoss версии 4.2.3
- Если вы положите архив в папку all/farm/ и присоедините сервер к уже работающему кластеру, то данное приложение не будет развернуто, т.к. JBoss не знает это новое приложение для развертывание или же это старое приложение, которое было удалено из других узлов кластера, пока данный сервер был недоступен.
- Нельзя поместить в кластерную конфигурацию приложения для развертывания в виде папки, т.к. оно не будет корректно развернуто на других узлах кластера.
- Развертывание и сворачивание приложения не является атомарной операцией. Т.е. если приложение не будет развернуто на одном из узлов кластера, то это не помешает развертывание данного приложения на других узлах кластера. Невозможно сделать откат. Нельзя контролировать поряд развертывания приложния на всех узлах кластера, т.е. оно может разворачиваться одновременно на всех узлах, что сделает сервис временно недоступным для клиентов.
Источник