Класс обработчика JSF с транзакционными методами - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть класс-обработчик для страницы JSF, но когда я аннотирую класс или любой метод с помощью @Transactional, я получаю эту ошибку при доступе к любому свойству на странице JSF:

Причина:javax.el.PropertyNotFoundException: /index.xhtml @ 54,67 value = "# {handler.startPage}": свойство 'startPage' не найдено для типа $ Proxy115

любые идеи, почему?

спасибо

1 Ответ

1 голос
/ 24 февраля 2012

Когда вы используете @Transactional, Spring создаст прокси для аннотированного класса и будет заменен исходным объектом.Алгоритм создания прокси по умолчанию это использовать прокси JDK, которые полагаются на интерфейсы.В интерфейсе обработчика нет свойства getter / setter для свойства startPage, следовательно, исключение.

Вы можете добавить getter / setter к интерфейсу или использовать прокси на основе классов.Для обеспечения использования прокси-серверов cglib, указанных ниже в вашем файле контекста:

<tx:annotation-driven proxy-target-class="true"/>
...