Наследование классов в Mule Java/компонент POJO

Я пытаюсь использовать базовый класс с общими методами и расширить его другими более конкретными классами.

public class myClass extends myBaseClass {}

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

<component class="org.example.MyClass" doc:name="Java"/>

Когда я не вызываю методы из родительского класса, все работает хорошо. Но каждый раз, когда я пытаюсь вызвать один Mule, возникает исключение:

DefaultJavaComponent{vtigersapFlow1.component.9760166}. Message payload is of type: String

В моем базовом классе я использую:

@Lookup
private MuleContext muleContext;

и и NullPointerExcception выбрасывается, когда я делаю:

muleContext.getRegistry().get("system.uri");

person Valentin Despa    schedule 09.06.2014    source источник
comment
Пожалуйста, добавьте журнал ошибок.   -  person Ale Sequeira    schedule 09.06.2014
comment
Обновлено с дополнительной информацией.   -  person Valentin Despa    schedule 09.06.2014


Ответы (1)


Возможно, что аннотация @Lookup неправильно соблюдается в иерархии классов.

Вместо того, чтобы искать значения в реестре, вы должны получать их инъекцией, т.е. получать system.uri инъекцией.

Вы можете обнаружить, что переход на Spring bean-компоненты очень поможет в этом. component class= действительно для базовых вещей.

person David Dossot    schedule 09.06.2014