Создание приложения Red Hat Fuse на основе OSGI-контейнера Karaf

10.08.21

Администрирование - Сервера

Red Hat Fuse - это промышленная интеграционная шина. Предлагаю вашему вниманию способ ее запуска из Red Hat Code Ready Studio и тестовый пример использования Apache Camel. Система будет считывать содержимое поступающих на её вход файлов и в зависимости от заданных в них реквизитов будет перемещать эти файлы между разными папками.

Проверим работу Apache Camel - механизма маршрутизации и посредничества, который обеспечивает реализацию на основе объектов Java шаблонов Enterprise Integration с использованием API (или декларативного языка Java Domain Specific Language) для настройки правил маршрутизации и посредничества.

 

В Code Ready Studio создадим новый проект следующим образом:

File/New/Other/RedHat Fuse/Fuse Integration Project 

 

 

Вводим название проекта. Кликаем Далее.

 

 

В окне Select a Target Environment выберите следующие параметры:

Выберите Standalone в качестве платформы развертывания.

Выберите Karaf / Fuse в Karaf  в раскрывающееся ячейке "Runtime"  fuse-karaf-7.8.0.fuse-780038-redhat-00001 RuntimeServer в качестве целевой среды выполнения.

 

 

После выбора целевой среды выполнения для вас автоматически выбирается версия Camel, и поле становится серым.
Кликаем "Next".

В открывшемся окне Advanced Project Setup выберите Beginner > Content Based Router - Blueprint DSL template.

Щелкните Готово.

Если будет предложено открыть связанную перспективу "Fuse Integration", нажмите Да.

 


Подождите, пока CodeReady Studio загрузит необходимые артефакты и построит проект в фоновом режиме.

Важно!

Если вы создаете проект Fuse в CodeReady Studio впервые, ему потребуется несколько минут, чтобы завершить создание проекта.
Не пытайтесь прервать работу или закрыть CodeReady Studio, пока проект строится в фоновом режиме.


Разверните проект на сервере следующим образом:

 В окне « Servers» (нижний левый угол перспективы «Интеграция Fuse»), если сервер еще не запущен, выберите fuse-karaf-7.8.0.fuse-780038-redhat-00001 Runtime Server и щелкните зеленую стрелку, чтобы запустить его.
   

   Примечание

    Если вы видите диалоговое окно, Warning: The authenticity of host 'localhost' can’t be established.t. , нажмите Да, чтобы подключиться к серверу и получить доступ к консоли Karaf.

    Подождите, пока вы не увидите сообщение, подобное следующему, в представлении консоли :

  

Karaf started in 1s. Bundle stats: 12 active, 12 total

 

    После запуска сервера вернитесь в окно «Servers» , щелкните правой кнопкой мыши по серверу и выберите «Add and Remove» в контекстном меню.
    В диалоговом окне «Add and Removel» выберите fuse-camel-cbr проект (CBR и Test1) и нажмите кнопку « Добавить» .
    Щелкните готово!                                                                                                         

 

                                                                                                                                                                                                          Вы можете проверить, запущен ли пакет OSGi проекта, перейдя в Терминал введите  bundle:list | tail. Вы должны увидеть следующий результат:

  

...
228 ^74; Active ^74;  80 ^74; 1.0.0.201505202023          ^74; org.osgi:org.osgi.service.j
232 ^74; Active ^74;  80 ^74; 1.0.0.SNAPSHOT              ^74; Fuse CBR Quickstart

 

Заходим в проводник. Сейчас мы сделаем исполняемыми файлы "fuse", "karaf", "start" в папке bin , находящейся по пути: "/home/текущий пользователь/fuse/bin".

Открываем свойства каждого из этих файлов и на закладке Права устанавливаем флажок "Разрешить исполнение файла как программы".

Необходимо настроить авторизацию пользователей (как минимум администратора системы), для этого раскомментируем строки авторизации по умолчанию:

# Disable admin user for the default installation
admin = admin,_g_:admingroup
_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh

Вводим команду в терминале от главного администратора:

sudo nano /etc/profile

Добавляем строку как показана на скриншоте:

export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

 

 

Запускаем сервер через терминал, это можно сделать и в Code Ready Studio и в обычном терминале. Команда "sh fuse:"

 

$ cd fuse-karaf
$ cd bin
$ sh fuse

 

Запуск сервера через консоль:

 

Открываем веб интерфейс (консоль управления Hawtio). Копируем адрес и вставляем его в браузер:

http://localhost:8181/hawtio

Тестируем программу Camel CBR.

В тестовой среде Code Ready Studio настроена рабочее пространство Workspace (у нас это папка /home/akulov.na/Code-workspace), в котором находятся исполняемые файлы нашего проекта и данные, каталоги обмена по умолчанию. Эту папку можно увидеть или поменять с помощью команды меню> File > Switch Workspace>Other:

 

В каталоге "Workspace>CBR 1/src/main/resources/OSGI-INF/blueprint" (в данном случае это каталог "/home/akulov.na/Code-workspace/CBR 1/src/main/resources/OSGI-INF/blueprint") находится

 
 Файл настройки маршрутизации blueprint.xml

 

Открываем проводник, заходим в папку рабочего пространства (workspace), внутри рабочей папки выбираем CBR. Эта папка  установленного в начале данной статьи приложения Camel CBR. Переходим в "src, main, data".

workspace name/cbr/src/main/fuse/data

В папке "data". В папке "data" находятся примеры  XML- файлов заказов покупателей. 

<?xml version="1.0"?>
<!DOCTYPE xml>
<!--
    Copyright 2014-2017, Red Hat, Inc. and/or its affiliates, and individual
    contributors by the @authors tag.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    https://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<order>

    <customer id="B0002">
        <name>Bristol Zoo Gardens</name>
        <city>Bristol</city>
        <country>UK</country>
    </customer>

    <date>2012-03-02</date>

    <orderlines>
        <orderline>
            <article id="B0002">
                <description>Badger</description>
            </article>
            <quantity>2</quantity>
        </orderline>
        <orderline>
            <article id="B0202">
                <description>Bee</description>
            </article>
            <quantity>200</quantity>
        </orderline>
    </orderlines>
</order>

В каждом XML файле прописан адрес, куда он должен переместиться из папки "input". Их нужно скопировать в папку "input", которая находится по пути:

workspace name/work/cbr/input

Как только вы закинете XML файл в папку Input, они сразу же переместятся в только что создавшуюся папку "Output". В этой папке есть еще несколько папок: other, us,uk. XML файлы сами распределятся по папкам.

 

На закладке "Console" CodeReadyStudio показан лог (см. скриншот выше):

 

[ead #4 - file://work/cbr/input] cbr-route                      INFO  Receiving order order1.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Sending order order1.xml to another country
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Done processing order1.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Receiving order order2.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Sending order order2.xml to the UK
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Done processing order2.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Receiving order order3.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Sending order order3.xml to the US
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Done processing order3.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Receiving order order4.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Sending order order4.xml to the UK
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Done processing order4.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Receiving order order5.xml
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Sending order order5.xml to the US
[ead #4 - file://work/cbr/input] cbr-route                      INFO  Done processing order5.xml

 

Открываем консоль управления Hawtio и переходим в Logs.

Лог работы Camel CBR на сервере Red Hat Fuse:

 

 

 

См. также

Администрирование веб-серверов Сервера Системный администратор Программист Абонемент ($m)

WEB приложение для управления сеансами сервера 1С, имеет адаптивный web интерфейс. Возможности: удаление сеансов; завершение rphost процессов; запуск службы 1С сервера (если остановлена). Используется авторизация BasicAuth с защитой от брутфорса. Поддерживает работу по http https протоколам.

1 стартмани

08.11.2024    628    8    gortrex    2    

3

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1497    capitan    0    

0

Сервера Системный администратор Бесплатно (free)

На первый взгляд, добавление второго сервера в кластер 1С не должно вызывать проблем – все просто должно работать. Но на практике дело обстоит иначе. Несмотря на то, что все действительно работает, многие при этом сталкиваются с трудностями. Расскажем, когда нужно задуматься о втором сервере 1С в кластере, какие особенности работы второго сервиса с файлами и сервисами, и какие настройки ТНФ можно сделать для лицензий ПРОФ и КОРП.

31.10.2024    9208    a.doroshkevich    21    

68

Сервера Системный администратор Программист Бесплатно (free)

Отдельный сервер лицензирования упрощает администрирование лицензий в сложных структурах с несколькими кластерами и тысячами пользователей. Расскажем о том, как настроить резервирование лицензий для крупной компании с высокими требованиями к доступности SLA 99.98% и автоматизировать переактивацию лицензий в случае возможных сбоев.

29.10.2024    2432    jul.dolganova    8    

16

Облачные сервисы, хостинг Linux Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая, прочая... На закуску разбираемся с отказоустойчивостью. В этой публикации для серверов 1С заодно попробуем подобно сериалу «Разрушители легенд» подтвердить или опровергнуть пару устойчивых мифов о требованиях назначения функциональности.

18.10.2024    1976    capitan    5    

12

Сервера Системный администратор Россия Бесплатно (free)

Основные критерии, на которые необходимо обратить внимание.

31.07.2024    2427    EFSOL_oblako    2    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 824 10.08.21 11:26 Сейчас в теме
2. ksnik 593 10.08.21 11:41 Сейчас в теме
(1) На Инфостарт есть масса статей о применении отдельных компонентов (верблюдов, кроликов и еще более чем 150 различных вариантов интеграции которые обеспечивает данная шина) и предоставляемых ими возможностей интеграции, которые входят в состав профессиональных интеграционных шин RED HAT FUSE и Apache ServiceMix. Данные обзоры должны составить более целостное представление о возможностях интеграционных шин. Файловые обмены часто применяются между продуктами 1С, например в случае поддержки работы удаленных подразделений шина запишет в лог информацию что откуда куда загружалось, сохранит архив сообщений и поддержит их гарантированную доставку. Интеграционная шина может логировать, брать на себя взаимодействие с почтой, ФТП, файловыми операциями и преобразоваывать форматы сообщений без привлечения программиста 1С. Возможности шины могут расширить диапазон вариантов интеграции 1С без уникального программирования. Один из примеров её использования - шина может искать упоминания проекта в твиттер и выкладывать посты на сайт.

Здесь Автор делится с нами опытом использования для тестирования возможностей интеграции тестовой среды Red Hat Code Ready Studio.
На Инфостарт так же представлены статьи о установке и настройке продуктива RED HAT JBOSS FUSE и исследовании его устройства и принципов работы.
3. SerVer1C 824 10.08.21 12:32 Сейчас в теме
(2) Про шину я понял. Вы не ответили на мой вопрос ) В статье я тоже не увидел примеров применения "сего творения" в связке с 1с.
4. akylov2002 10 10.08.21 13:29 Сейчас в теме
(3) данная статья посвящена другой теме, - применению red hat code redy studio для тестирования возможностей red hat fuse (пока не имеем возможности в ней тестировать 1с), поэтому вырезки из 1с были бы лишними и перегрузили бы статью. Желаемому Вами функционалу будут посвящены следующие выпуски, все сразу не охватишь одной статьей.
Оставьте свое сообщение