После загрузки тонкий клиент подключается к vpn серверу
На своем опыте скажу, что это — так себе схема. Мой vps был успешно заблочен РКН-ом в одну из первых волн блокировок. Я подключился в обратную сторону: мой сервер внутри РФ — это сервер VPN, а заграничный — это клиент VPN.
Мне кажется (я точно ловил), что будет NullPointerException при получении списка песен
people.getSongItems()
Т.к. гибернейт успевает закрыть транзакцию после чтения списка people-ов, и EAGER поля остаются невычитанными из БД. Соответственно, весь метод преобразования Entity в DTO с чтением EAGER полей нужно оборачивать в @Transactional аннотацию.
У меня и по бекэнду тоже есть претензии к архитектуре. Почему бесплатное объявление висит в выдаче из 30 дней только первые 2-3 и последние 4-5? Почему в серединные 20-25 дней оно не показывается в выдаче другим людям (или показ очень редкий), и тем самым клянчатся деньги на платные объявления?
Т.е. serverless — это использование сторонних сервисов для конструирования приложения и его дальнейшего размещения? И почему именно swifty? Это реклама?
Интересно, как будут расценивать квадрокоптеры с видеокамерами? с одной стороны — можно природу и архитектуру города снимать, а с другой — и соседей тоже.
в пункте 15 я не увидел той магии, о которой было заявлено. в JS объявляются переменные, ну вроде как Java типы… ну а где профит? как данные из Java-сервера передать в клиента? Можешь сделать пример, который будет хотя бы текущую дату из переменной, объявленной в Java модуле на сервере, показывать на странице? или эта тема вообще не связана с клиент-серверным взаимодействием, а просто о том, как можно ноду под граалем запустить?
Я тут поразмыслил над вашим кейсом. Вряд ли у вас возможен случай, когда вы не можете достоверно определить бин. В том смысле, что название бина составляется в рантайме. Скорее всего, выбор все-таки из конечного числа бинов. И если добавляется новый обработчик-бин, то нужно его прописать и перекомпилировать. В таком случае вам подойдет вариант с Router-ом. Т.е. вы добавляете бин, прописываете проперти и добавляете условие по которому этот бин «сработает».
Я создал тестовый проект из мавен-архетипа camel-archetype-spring-boot, и сделал вот что:
@Component
public class TestBean1 {
@Handler
public void test1(Exchange exchange) {
System.out.println("TEST 1");
}
}
@Component
public class MySpringBootRouter extends RouteBuilder {
@Override
public void configure() {
Object bean1 = getContext().getRegistry().lookupByName("testBean1");
from("timer:trigger")
.bean(bean1)
.transform().simple("ref:myBean")
.to("log:out");
}
@Bean
String myBean() {
return "I'm Spring bean!";
}
}
и получаю в консоль вот такое:
TEST 1
2018-04-02 15:27:56.643 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:27:57.624 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:27:58.624 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:27:59.623 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:28:00.625 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
Попробуйте использовать конструкцию getContext().getRegistry().lookupByName("testBean1");
для получения конкретного бина по имени.
Задавайте вопросы Клаусу в комментариях к этому тексту, и автор самого интересного вопроса (которого мы с Клаусом выберем уже 2 апреля) получит от нас и наших друзей из Jug.ru билет на конференцию и сможет не только услышать Клауса и других участников вживую, но и принять участие в розыгрыше книги «Camel in Action».
Всем известно, что у фреймворка SpringBoot существует своя экосистема для построения микросервисов. Также, не секрет, известно, что проектов, построенные на Apache Camel, хорошо работают под управлением контейнеров Apache Karaf.
Мне интересно, есть ли возможность реализации проекта с интерфейсом для пользователя, написанном на SpringBoot, бизнес-логика которого использует Apache Camel в качестве маршрутизатора потока информации, в виде бандла (bundle) для Apache Karaf? Запустится ли SpringBoot внутри Karaf-контейнера? Или следует использовать экосистему SpringBoot-а для этих целей, добавляя в нее модуль Apache Camel? Или, возможно, нужно их держать отдельно, связывая посредством Message-брокеров (ActiveMQ) и баз данных?
Очень интересно. Спасибо.
Но есть вопрос: будет ли открыто АПИ для работы с Алисой в качестве клиента? т.е. у меня есть желание использовать Алису в качестве собеседника.
На своем опыте скажу, что это — так себе схема. Мой vps был успешно заблочен РКН-ом в одну из первых волн блокировок. Я подключился в обратную сторону: мой сервер внутри РФ — это сервер VPN, а заграничный — это клиент VPN.
Т.к. гибернейт успевает закрыть транзакцию после чтения списка people-ов, и EAGER поля остаются невычитанными из БД. Соответственно, весь метод преобразования Entity в DTO с чтением EAGER полей нужно оборачивать в @Transactional аннотацию.
Вот тест:
Выхлоп:
2018-04-03 10:39:07.695 WARN 3228 --- [timer://trigger] ru.bvn13.test.MasterObject1 : HELLO FROM ru.bvn13.test.MasterObject1
2018-04-03 10:39:07.695 WARN 3228 --- [timer://trigger] ru.bvn13.test.MasterObject1 : HELLO FROM ru.bvn13.test.MasterObject1
и получаю в консоль вот такое:
TEST 1
2018-04-02 15:27:56.643 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:27:57.624 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:27:58.624 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:27:59.623 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
TEST 1
2018-04-02 15:28:00.625 INFO 15716 --- [timer://trigger] out : Exchange[ExchangePattern: InOnly, BodyType: String, Body: I'm Spring bean!]
Попробуйте использовать конструкцию
getContext().getRegistry().lookupByName("testBean1");для получения конкретного бина по имени.
Задавайте вопросы Клаусу в комментариях к этому тексту, и автор самого интересного вопроса (которого мы с Клаусом выберем уже 2 апреля) получит от нас и наших друзей из Jug.ru билет на конференцию и сможет не только услышать Клауса и других участников вживую, но и принять участие в розыгрыше книги «Camel in Action».Уже не будет розыгрыша? или это и был розыгрыш?
.bean(exchangeProperty[propertyName].getMyBeanName())а так не сработает?
Всем известно, что у фреймворка SpringBoot существует своя экосистема для построения микросервисов. Также, не секрет, известно, что проектов, построенные на Apache Camel, хорошо работают под управлением контейнеров Apache Karaf.
Мне интересно, есть ли возможность реализации проекта с интерфейсом для пользователя, написанном на SpringBoot, бизнес-логика которого использует Apache Camel в качестве маршрутизатора потока информации, в виде бандла (bundle) для Apache Karaf? Запустится ли SpringBoot внутри Karaf-контейнера? Или следует использовать экосистему SpringBoot-а для этих целей, добавляя в нее модуль Apache Camel? Или, возможно, нужно их держать отдельно, связывая посредством Message-брокеров (ActiveMQ) и баз данных?
Но есть вопрос: будет ли открыто АПИ для работы с Алисой в качестве клиента? т.е. у меня есть желание использовать Алису в качестве собеседника.