JBoss 4 переопределяет стандартный класс пула для приложения - PullRequest
1 голос
/ 29 августа 2011

мы разрабатываем набор компонентов, которые могут использоваться нашими приложениями, которые в настоящее время работают на Jboss 4.2.3.GA.

Однако, поскольку JBoss 4 уже довольно старый, мы хотели бы перейтидо JBoss 5+ (скорее всего JBoss 6.1).В этом случае у нас возникнут проблемы с нашими компонентами, содержащими сессионные компоненты без сохранения состояния, аннотированные аннотацией @PoolClass, специфичной для JBoss, которая была переименована в @Pool начиная с JBoss 5.

Как вы видите, используя эту аннотациюв компонентах вводится зависимость не только от сервера приложений, но и от конкретных версий.Таким образом, я хотел бы избавиться от этой аннотации и использовать конфигурацию через XML.

В этом случае мне не нужно определять класс пула для сессионного компонента, поскольку почти все они используютКласс StrictMaxPool с такими же настройками.Если для какого-либо сессионного компонента требуется другой пул или другой параметр, можно предоставить конкретную запись, но я бы предпочел не делать этого для большинства.

Класс пула по умолчанию обычно определяется в ejb3-interceptors-aop.xl.Однако эта конфигурация применяется ко всем приложениям, развернутым на этом сервере.

Что бы я хотел сделать сейчас, это определить класс пула по умолчанию (с настройками по умолчанию) для каждого приложения, если это возможно, без добавления чего-либо определенного для сессионных компонентов в наших компонентах (например, специфичного для JBoss @AspectDomain аннотация).

Возможно ли это, и если да, то как?

Мне пока не удалось найти какую-либо полезную информацию, поэтому я был бы рад, если бы кто-то мог указать мне правильное направление.

Редактировать: Если у вас есть информация о том, как это сделать в JBoss 5+, это тоже было бы здорово, но JBoss 4 сейчас имеет более высокий приоритет.

1 Ответ

0 голосов
/ 31 августа 2011

Похоже, я нашел решение:

Существует проблема с JBoss AOP 1.5.6, который используется JBoss 4.2.3.GA. Хотя ошибок нет, похоже, что есть одно, препятствующее использованию определений пулов в заданной области (похоже, что источником проблемы является инвертированное условие if :)). Обновление до JBoss AOP 2.1.8 работает как шарм.

Вот что я делаю:

  • Поместите файл jboss-aop.xml в корень jar-файла ejb в ухе (у нас уже есть тот, который содержит наш файл persistence.xml).
  • В файле jboss-aop.xml создайте домен Bean-компонент без состояния , который выходит из домена по умолчанию Bean-компонент без состояния и наследует все привязки и определения
  • Внутри расширенного домена переопределите определение класса пула.
...