WSO2 ESB читает свойство OperationName в посреднике - PullRequest
0 голосов
/ 06 октября 2019

Я хочу прочитать свойства OperationName и To в моем собственном посреднике, написанном на Java. с этой строкой кода

(String) context.getProperty("OperationName") и (String) context.getProperty("To")

я получаю null в результате. Как я могу получить правильное значение? Я перепробовал большинство контекстов свойств, но ничего не получил, кроме null.

1 Ответ

3 голосов
/ 09 октября 2019

Похоже, что свойства 'To' и 'OperationName' доступны только через функцию 'get-property' и не установлены в контексте сообщения [1] . Чтобы удовлетворить ваши требования, есть две опции.

Опция 1

В вашем посреднике класса вы можете использовать эти строки для извлечения To и OperationName, как в методе [2] .

String opName = ((Axis2MessageContext) context).getAxis2MessageContext().getAxisOperation().getName().getLocalPart();
String to = context.getTo().getAddress();

PS: Пожалуйста, обращайтесь с NPE.

Вариант 2

В прокси-сервисеили последовательность, в которой используется этот посредник класса, перед его использованием определите два свойства, например, следующее:

<property expression="get-property('To')" name="To"/>
<property expression="get-property('OperationName')" name="OperationName"/>

Итак, вы можете получить доступ к этим свойствам в посреднике класса, как вы упомянули.

(String) context.getProperty("OperationName") and (String) context.getProperty("To")
...