0

我正在使用 postgresql、JBoss 7.1 和 J2EE6。我的项目结构有 1 个耳朵,1 个 JAR 持有 EJB,1 个 WAR 持有 web 前端。

我将 postgresql 驱动程序作为 JBoss 模块提供并更改standalone.xml 以引用数据源。以上一切正常。

现在我想使用 arquillian 来测试一个带有 postgres 数据源的 jboss 托管实例。我不想更改 maven 下载的 jboss,因为我想在我的应用程序中提供所有依赖项(唯一可以接受的是 JBoss 上的 Standalone.xml 中的数据源配置)。

EarContent/lib问题:如果我开始在项目中使用 postgresql jar ,ear我在启动 jboss 时会丢失/不满足依赖项,看起来 jboss 无法找到部署在里面的驱动程序standalone/deployments。查看网络 ppl 告诉示例如何将 postgres 驱动程序与模块一起使用,但这不是我想要做的。我想将 postgresql 驱动程序与应用程序一起发布,这样我就可以毫不费力地控制版本(并且我可以在不将模块添加到我将使用 arquillian 测试的 jboss 的情况下针对 postgres 进行测试)。

如何添加 postgres 驱动程序以与我的应用程序一起提供而不会missing/unsatisfied在 JBoss 中发生依赖项错误?

如果这是不可能的,我如何更改 JBoss 文件而不在每次执行clean目标时手动更改?比如 modules 和 standalone.xml。

4

1 回答 1

0

在应用程序中发布驱动程序是不可能的(JDBC 驱动程序是否应该包含在 WAR 中?

我找到了解决这个问题的方法:
在 maven 中创建一个本地存储库org.jboss.as:jboss-as-dist:7.1.1.Final,本地存储库将有一个自定义 jboss 分发,其中所需的驱动程序作为模块(如果需要,使用不同的 artifactId/groupId)。

测试时,您将使用自定义本地存储库而不是官方存储库,然后您将完全控制在使用 arquillian 进行测试时需要哪些文件。

于 2013-02-21T02:11:37.430 回答