Создание приложения 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:

 

 

 

См. также

Проблемы на ровном месте, или рассказ о том, как у нас каждое утро стабильно подвисал dev-сервер 1С

Сервера Платформа 1С v8.3 Россия Бесплатно (free)

Меня зовут Павел Белоусов, я работаю Ведущим программистом 1С в компании OCS Distribution. Хочу поделиться историей, как мы столкнулись с постоянными зависаниями dev-сервера 1C, каким образом решили проблему и какие любопытные уроки вынесли из ситуации.

12.04.2024    2121    pbelousov    55    

16

Запуск сервера хранилища конфигураций и сервера удаленного управления на Linux, посредством systemd

Linux Сервера Платформа 1С v8.3 Абонемент ($m)

Сказ о том, как сделать "кошерный" запуск серверов хранилища конфигураций (вдруг еще кто-то до сих пор пользуется) и удаленного администрирования под GNU/Linux с использованием systemd

1 стартмани

07.09.2023    4484    Sloth    0    

23

Первый день архитектора 1С на новой работе

Мониторинг Сервера Администрирование СУБД Бесплатно (free)

Как быстро познакомиться с системой на новой работе или если вас пригласили провести аудит контура на 1С? О том, какие инструменты использовать для быстрой проверки настроек сервера 1С, сервера MS SQL и общей оценки инфраструктуры на производительность, на конференции Infostart Event 2021 Post-Apocalypse рассказал архитектор 1С Юрий Былинкин.

01.06.2023    11022    ardn    19    

82

Путь самурая. Ставим локальный Сервер взаимодействия

Сервера Администрирование веб-серверов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подробная пошаговая инструкция (как делал я) установки Сервера взаимодействия версия 22.0.26 на Windows Server 2022. Установка собственного объектного хранилище с помощью системы MinIO (https://min.io/). Настройка Сервера взаимодействия для обмена файлами в сообщениях.

1 стартмани

07.04.2023    13256    VPanin56    42    

75

Быстрое конфигурирование серверов с Ansible

Администрирование веб-серверов Сервера Бесплатно (free)

Всю рутину по обновлению платформы, настройке веб-серверов и серверов хранилищ на всем парке серверов компании можно автоматизировать с помощью удобочитаемых YAML-скриптов Ansible. О том, как написать сценарии такой автоматизации, чтобы запускать их параллельно для группы серверов, на митапе «Инструменты автоматизации рутины в 1С-разработке» рассказал ведущий разработчик компании ПИК Digital Павел Комаров.

26.01.2023    5191    lopatrik    4    

22

Жизнь платформы 1C:Предприятие в кластере Kubernetes

Сервера DevOps и автоматизация разработки Облачные сервисы, хостинг Бесплатно (free)

Во многих сферах запуск приложений в Kubernetes является де-факто стандартом архитектуры, так как это позволяет быстро и эффективно задействовать ресурсы, не затрачивая на это большие деньги. Но с платформой 1С:Предприятие не все так просто, но потенциально возможно. Руслан Жданов на митапе «DevOps в 1С: CI/CD. Непрерывная интеграция и поставка решений на 1С» рассказал про то, как с помощью Kubernetes организовать в облаке управление кластером из серверов 1С и реализовать там тестирование приложений на 1С или запуск скриптов на OneScript.

24.01.2023    9717    ZhdanovR    3    

27

Замена имени сервера в файле ibases.v8i у пользователей в домене через GPO

Сети Сервера Платформа 1С v8.3 Абонемент ($m)

При переезде на новый сервер 1С возникла необходимость подготовить всех пользователей (а их 300+) к этому переезду и желательно не мешая их работе. А если быть точнее, то заменить в их списках информационных баз имя сервера. Итак, что имеем в условии.  Есть сервер 1С с именем  WIN2016.  Необходимо перенастроить всех пользователей на новый сервер с именем SRV1C. Для этого придется либо руками у каждого пользователя исправить записи по каждой базе через открытие 1С, либо поправить файл ibases.v8i, который находится в папке профиля пользователя. Второй вариант более интересен, но лезть на 300+ компьютеров не наш метод.

1 стартмани

30.11.2022    3265    1    dungeonkeeper    13    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 750 10.08.21 11:26 Сейчас в теме
2. ksnik 580 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 750 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с были бы лишними и перегрузили бы статью. Желаемому Вами функционалу будут посвящены следующие выпуски, все сразу не охватишь одной статьей.
Оставьте свое сообщение