Хобрук: Ваш путь к мастерству в программировании

Восстановление значения свойства из прокси в другом прокси в wso2 6.1

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

Я пытался использовать это:

<property expression="$ctx:property-name" name="property-name"/>

Но не сработало. Кто-нибудь знает, можно ли получить это значение? Если можно, то как сделать?

04.09.2017

  • Создайте общую последовательность, которая задает значение свойства, и вызовите ее с обоих прокси. 04.09.2017
  • Я пробовал это решение... но оно не сработало, когда при попытке восстановить свойство на другом прокси-сервере я получаю нулевое значение. 04.09.2017
  • Вы не можете получить свойство от другого прокси. Что вы можете сделать, так это установить то же значение. 04.09.2017
  • Значение может быть либо константой, либо чем-то, что вы читаете из реестра. 04.09.2017

Ответы:


1

Возможно, вам поможет один из этих обходных путей.

  • передать значение в качестве параметра (например, установить заголовок http, свойство soap) с одного прокси-сервера на другой, если это возможно

  • сохранить вашу ценность в базе данных (например, во внутренней базе данных H2) и получить к ней доступ со второго прокси-сервера

05.09.2017

2

Одним из способов было бы использование опции посредника класса, доступной в WSO2 ESB.

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

<class name="samples.mediators.SimpleClassMediator">
    <property name="variable1" value="10"/>
    <property name="variable2" value="5"/>
</class>

Когда мы реализуем этот медиатор пользовательского класса, реализовав интерфейс Mediator или AbstractMediator, через метод mediate(MessageContext synCtx) мы получаем доступ к контексту Synapse Message (свойства в этом объекте будут доступны для всех посредников в той же службе).

С помощью объекта MessageContext вы можете получить доступ к другим объектам глобального контекста, таким как SynapseConfiguration, SynapseEnvironment и т. д.,

Таким образом, в посредническом методе вы можете получить доступ к объекту SynapseConfiguration и использовать для него метод setProperty(String key, String value) и передать свое свойство, к которому должны обращаться другие службы или API. Получите доступ к этому свойству, вызвав getProperty() для объекта SynapseConfiguration, написав аналогичный посредник класса.

Использованная литература:

https://docs.wso2.com/display/ESB490/Class+Mediator http://synapse.apache.org/apidocs/org/apache/synapse/config/SynapseConfiguration.html

07.09.2017
  • Привет, извините за вопрос к старому ответу. Разве посредник класса не создается как новый объект каждый раз, когда сообщение поступает в посредник. Если да, то как он может передавать состояние от одной прокси-службы к другой? 19.10.2017
  • Привет @PetteriPertola, посредник класса создаст экземпляр одного экземпляра класса. Если требуется синхронизация на уровне запроса, то же самое необходимо сделать. Также этот подход следует использовать в зависимости от варианта использования. Также я думал сохранить свойство в объектах глобального контекста, таких как SynapseConfiguration, а не в реализации медиатора пользовательского класса. 20.10.2017
  • Ага, это имеет смысл. В моем случае я не могу сохранить его в SynapseConfig, потому что он не глобальный в том смысле, что он будет доступен через разные прокси-сервисы. Документация по медиаторам классов в целом не очень хороша в этой части. Спасибо. 20.10.2017
  • Новые материалы

    Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
    Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

    AST для разработчиков JavaScript
    TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

    5 проектов на Python, которые нужно создать прямо сейчас!
    Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..