2016-10-03 3 views
1

я получил исключение с трассирование, содержащий следующую строку

my.company.Service$$$view26.myMethod(Unknown Source) 

Может кто-нибудь помочь мне понять, что $$$ средства просмотра часть?

Мы используем JBoss EAP 6.4 и Java 8.

Благодарности

+0

Не означает ничего в частности. Это сгенерированный класс. –

ответ

1

знак доллара ($, один или несколько) означает, что это сгенерированный класс.

CDI (Weld 1.x в случае EAP 6.4, который вы используете) является одной из «фреймворков», которая использует этот шаблон. Он создает прокси-серверы, основанные на ваших классах, чтобы обеспечить декорирование перехвата и вставку бобов. Все сгенерированные классы будут иметь одинаковое имя пакета и имя класса и будут добавлены магическими долларовыми аффиксами. Я предполагаю, что вы столкнулись с ним с некоторыми функциями CDI.

Также некоторые из фреймворков JBoss (вероятно, используемые либо в Weld, либо в другой части EAP) позволили создать автоматизированные классы регистратора на основе аннотаций. Создание этих регистраторов было также основано на добавлении аффикса $ к имени класса.

Это обычная практика и позволяет «легко» (не очень легко) идентифицировать сгенерированные классы. Хотя я не могу выкопать какое-либо официальное требование, которое должно было создавать созданные классы.

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