【发布时间】:2018-06-07 05:34:50
【问题描述】:
我正在使用 Arquillian 来测试我的代码的某些部分。为了使用物化视图运行特定测试,我不能依赖 H2,因此我必须将其更改为真正的 Oracle 数据库。
为此,我创建了一个运行 Oracle Database 11g XE 的小型 Docker 容器,并添加了一个用户“db”。然后我添加了一个 oracle-ds.xml,我也将它添加到我的 Arquillian 部署中。但它无法检测到 oracle 驱动:
引起:java.lang.Exception:{ "WFLYCTL0412: 未安装的所需服务:" => ["jboss.jdbc-driver.oracle"], "WFLYCTL0180: 缺少/不可用依赖项的服务" => ["jboss.data-source.\"jboss.naming.context.java.jboss.datasources.OracleTestDs\" 缺少 [jboss.jdbc-driver.oracle]"] }
在我的本地机器上,我手动添加了它,但它在 Arquillian 管理的 Wildfly 中不起作用 - 或者至少我不知道怎么做。
我试过直接加,还是不行:
PomEquippedResolveStage pomFile = Maven.resolver().loadPomFromFile("pom.xml");
WebArchive archive = ShrinkWrap.create(WebArchive.class)
.addAsLibraries(pomFile.resolve("org.assertj:assertj-core").withTransitivity().asFile())
.addAsLibraries(pomFile.resolve("com.oracle:ojdbc6").withTransitivity().asFile())
// add many classes....
.addAsResource("test-persistence.xml", "META-INF/persistence.xml")
.addAsResource("import.sql")
.addAsResource("log4j2.xml")
.addAsManifestResource("oracle-ds.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
这只是将 oracle 驱动程序添加到 war 文件中,但我的代码依赖于 Wildfly 容器中的驱动程序。有没有办法将其部署到 Arquillian 提供的 Wildfly?
【问题讨论】:
标签: java oracle jakarta-ee jboss jboss-arquillian