2013-02-20 1 views
0

Я использую postgresql, JBoss 7.1 и J2EE6. В моей проектной структуре есть 1 ухо с 1 JAR-держателем EJB и 1 WAR, держащий веб-интерфейс.решает проблему postgresql без использования модулей JBoss или избегает ручных манипуляций с управляемыми файлами jboss.

Я доставляю драйвер postgresql как модуль JBoss и изменяю standalone.xml для ссылки на источник данных. С вышеуказанным все работает нормально.

Теперь я хочу использовать arquillian для тестирования с управляемым экземпляром jboss с источником данных postgres. Я не хочу изменять jboss, загружаемый maven, потому что я хочу доставить все мои зависимости в моем приложении (единственно приемлемой будет конфигурация источника данных внутри standalone.xml на JBoss).

Проблема: Если начать использовать PostGreSQL банку внутри EarContent/lib из ear проекта я получаю отсутствующий/неявные зависимости при запуске JBoss, выглядит как JBoss не может найти драйвер развернутого внутри standalone/deployments. Оглядываясь на web ppl, расскажите о том, как использовать драйвер postgres с модулями, но это не то, что я хочу делать. Я хочу отправить драйвер postgresql вместе с приложением, чтобы у меня был контроль над версиями без особых усилий (и я могу протестировать postgres без добавления модуля в jboss, с которым я буду тестировать с arquillian).

Как добавить драйвер postgres для отправки с моим приложением, не делая ошибки зависимостей missing/unsatisfied в JBoss?

Если это невозможно, как я могу изменить файлы JBoss без изменения вручную каждый раз, когда я делаю цель clean? Например, модули и standalone.xml.

+1

Я думаю, что этого довольно трудно достичь. См. Этот комментарий, объясняя, почему: http://stackoverflow.com/questions/3770741/should-jdbc-drivers-be-included-in-a-war#comment3991125_3770773 –

+0

Возможно, вы сможете что-то играть с загрузчиками классов, но поскольку это также является изменением предоставленного jboss, это, вероятно, не подходит для вас. –

+0

Итак, как я могу это сделать с arquillian без ручного изменения управляемых файлов jboss? Есть ли API? Это можно рассматривать и как ответ. –

ответ

0

невозможно отправить водитель внутри приложения (Should JDBC drivers be included in a WAR?)

я нашел способ решить эту проблему, хотя:
Создать локальный репозиторий Maven для org.jboss.as:jboss-as-dist:7.1.1.Final, локальное хранилище будет иметь собственный JBoss распространение с необходимыми драйверами в качестве модулей (при необходимости, с другим артефактом/groupId).

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