2015-02-11 4 views
3

Этот tutorial говорит, что Message Driven Bean class cannot be defined as abstract or final. В чем причина этого? Почему этот класс не может быть закрыт для расширений?Почему класс MDB не может быть окончательным

ОБНОВЛЕНИЕ: Я тестирую это на JBoss Eap 6.3, и то, что я отметил, это MDB, который не запускается, хотя есть сообщения в очереди, Но я не мог найти никаких журналов ошибок относительно этого.

+1

Это хороший вопрос. Спецификация EJB 3.1 не говорит ничего больше, чем учебник. – Magnilex

+0

Я пробовал это сделать, и то, что я заметил, это MDB, который не срабатывает, хотя есть сообщения в очереди, Но я не мог найти никаких журналов ошибок относительно этого. Я попробовал это на JBoss Eap 6.3 –

ответ

1

Чтобы контейнеры могли использовать instancess, что позволяет им вводить зависимости и делать другие трюки. Хорошая статья об аппаратуре - http://javapapers.com/core-java/java-instrumentation/. Контейнеры могут делать это разными способами.

+0

Его недостаточно ясно для меня, чтобы принять это как ответ. Как зависимости от инъекций влияют на конечный класс? –

+1

в большинстве случаев невозможно получить окончательный класс. Посмотрите, например, на это http://stackoverflow.com/questions/16437323/how-can-i-create-dynamic-proxy-for-final-class, о http: //www.csg.ci.iu- tokyo.ac.jp/~chiba/javassist/, библиотеку, используемую в спящем режиме, для выполнения инструментов. Хотя я никогда не беспокоился о таких глубоких деталях, поэтому вы можете захотеть найти более надежные источники :) – user656449

Смежные вопросы