Применить дескриптор ejb-jar к абстрактному классу - PullRequest
0 голосов
/ 31 мая 2019

У меня есть сервер weblogic со службой, и мне нужно вести себя 2 разными способами в зависимости от установки. Мой план состоял в том, чтобы нормально развернуть в первом случае, установив переменную String в качестве @ Resource с дескриптором ejb-jar в классе, который требует два различных поведения ( который я выбрал, используя квалификаторы), и если я хотел, чтобы второй применил изменения, используя план во время установки.

Затем я решил сделать родительский класс абстрактным, потому что мне нужно было две его реализации, и мне нужно оставить эту переменную там, чтобы все еще иметь возможность выбирать поведение. Но затем, когда я внедряю службу, установщик не может сказать, что переменная не может быть установлена.

До сих пор я пытался полностью удалить ejb-jar и установить для переменной значение по умолчанию, но тогда план не сможет установить новое значение в случае, если мне нужно второе поведение ( или я не знаю, как это сделать, что является довольно новым для всего этого вполне возможно).

Другая идея, которая могла бы сработать, заключается в том, чтобы установить переменную в классах, реализующих абстрактный, и установить их, используя ejb-jar для каждого, но это может вырасти слишком сильно.

Итак, какие-нибудь подсказки, помощь или документацию я мог бы посмотреть? Действительно ли проблема в том, что класс абстрактен, или я где-то связался?

Точная ошибка, которую я получаю:

weblogic.j2ee.dd.xml.AnnotationProcessException: [EJB: 015005] Тип сеанса не задан в дескрипторе развертывания или аннотации для сессионного компонента MyAbstractBean

Я знаю, это может означать, что мне нужно добавить тег type к тегу session в дескрипторе, но тот же ejb-jar , кажется, работает для не абстрактных классов, и я действительно не знаю, каким должен быть этот тип тега.

А вот мой ejb-jar:

<ejb-jar>
<enterprise-beans>
    <session>
        <ejb-name>MyAbstractBean</ejb-name>
        <ejb-class>mypackage.MyAbstractBean</ejb-class>
        <env-entry>
            <description> Here comes a descriptions</description>
            <env-entry-name>MyAbstractBean</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <env-entry-value>JMS</env-entry-value>
        </env-entry>
    </session>
</enterprise-beans>
</ejb-jar>

Спасибо!

...