Пользовательская POJOCommand WSO2 ESB

#java #wso2 #esb

# #java #wso2 #esb

Вопрос:

Мне нужно написать пользовательский POJOCommandMediator . Согласно wso2doc, я должен реализовать org.apache.synapse.Command . Я создаю простой jar с одним классом: …

 public class PojoCommandMediator implements Command {
    @Override
    public void execute() {
}
 

Но каждый раз, когда я развертываю свой jar, я вижу

Ошибка «Класс не найден в пути» в редакторе последовательности проектирования.

Раньше я успешно писал пользовательский посредник классов, но здесь я сталкиваюсь с некоторыми трудностями.

Итак, у меня есть несколько вопросов:

Правильно ли, что я должен вручную создать каталог посредников (по умолчанию он отсутствует) и поместить мой командный посредник в ESB_HOMErepositorycomponentsmediators папку:?

Есть ли какие-либо дополнительные требования к пользовательской команде POJO, которые мне нужно знать, кроме как реализовать метод выполнения и создать jar для успешной загрузки командного класса в wso2?

Спасибо за любую помощь! 🙂

Ответ №1:

Вы можете развернуть файл jar с помощью пользовательского POJOCommandMediator в папке ESB_HOME/repository/components/ lib. Таким образом, при перезапуске ESB подберет ваш класс.

—Редактировать—

Фактическая проблема, похоже, связана с компонентом пользовательского интерфейса, который выдает ошибку авторизации. Вместо того, чтобы добавлять его через представление конструктора, вы можете перейти к исходному представлению конфигурации прокси-сервера и добавить следующее.

 <inSequence>
     <pojoCommand name="class-name"/>
</inSequence>
 

Таким образом, POJOCommand будет развернут правильно. Надеюсь, это поможет.

Комментарии:

1. Спасибо за ваш ответ. Это не даст никакого эффекта и не решит проблему, потому что, на мой взгляд, класс PojoCommandMediator не расширяет какой-либо абстрактный посредник или не реализует какой-либо интерфейс, кроме Command . Да, ESB также подберет и поместит его в каталог dropins. Я попробовал это, но «Класс не найден» снова. Соответствие каталогу wso2 esb doc ESB_HOME/repository/components / lib предназначено только для посредников классов.

2. Большое спасибо! <Имя pojoCommand=»class-name»/> работает нормально. Похоже на ошибку в пользовательском интерфейсе.