Показаны сообщения с ярлыком j2ee. Показать все сообщения
Показаны сообщения с ярлыком j2ee. Показать все сообщения

вторник, 12 августа 2008 г.

java.lang.NoSuchFieldError: TRACE

Вот с такой штукой я воюю со вчерашнего дня.
И ведь дописал все что нужно, проверил - работает. Осталась самая малость, формальность практически - написать тесты. Написал блин... Не удается достучаться до session бина.

final InitialContext initialContext = new InitialContext( env );
Контекст получаю нормально, делаю лист когда - нужный мне бин в списках есть, но когда пытаюсь сделать лукап:
initialContext.lookup( "ServiceBean/remote" )
Получаю в ответ то что я в заголовок вынес, т.е. java.lang.NoSuchFieldError: TRACE
Ну и стэктрейс само собой, по которому лично мне ничего не понятно.

Ну что же остается ковырятся. Результаты отпишу позднее.
Ну и собственно говоря с чем работаю:
jdk 1.6.0_05
jboss 4.2.0 GA

Добавлено чуть попозже:
Блин все гениальное просто. Немного гугля вкупе с английским + мудрость сэнсея. Оказалось что в log4j до версии 1.2.12 отсутствует поле TRACE
TRACE field in log4j is introduced from 1.2.12 version

Заменил старую версию log4j на свежачок и все заработало.
(update log4j).

Вот так вот. Как обычно все оказалось значительно проще чем казалось. И еще один вывод - по русским ресурсам сейчас гуглить практически бесполезно. Надо учить английский.

Народ, если данный пост вам оказался полезен - черкните пару строк в камменты.

среда, 4 июня 2008 г.

simultaneously fetch multiple bags

Вчера работая с ejb3 столкнулся с проблемой упомянутой в заголовке поста. При создании связи many-to-many если указываешь fetch="EAGER" при деплое модуля jboss-4.2.0.GA выдавал ошибку и ругался такими словами "simultaneously fetch multiple bags".

Нет бы сенсея спросить с чего такое может быть, но нет мы же умные и у нас трафик еще есть — отправился гуглить. Часа полтора ушло на эту проблему, а может и побольше чуток. Как оказалось это не бага, а фича. Причем сенсей был о ней неплохо осведомлен.

В общем смотрите решение :)

1. fetch="LAZY"

если вам необходимо использовать EAGER, то используем следующее

2. заменяем Collection и List в которых у нас находятся связанные сущности на Set и наслаждаемся тем что все проходит на ура.

Пример
Было
protected List<Group> groups = new ArrayList<Group>();

Стало
protected Set<Group> groups = new HashSet<Group>();

P.S.: народ а что лучше использование аннотаций в entity или описывать сущности в orm.xml?