在不使用JBoss模块的情况下解决postgresql缺少依赖项的问题,或者避免对JBoss管理的文件进行手动操作
我正在使用postgresql、JBoss7.1和J2EE6。 我的项目结构有1个ear,1个JAR容纳EJB,1个WAR容纳web前端 我将postgresql驱动程序作为JBoss模块交付,并将standalone.xml更改为引用数据源。 有了以上这些,一切都很好 现在我想使用arquillian对一个带有postgres数据源的jboss托管实例进行测试。我不想更改maven下载的jboss,因为我想在我的应用程序中提供所有依赖项(唯一可以接受的是jboss上standalone.xml中的数据源配置) 问题是: 如果我在在不使用JBoss模块的情况下解决postgresql缺少依赖项的问题,或者避免对JBoss管理的文件进行手动操作,postgresql,jakarta-ee,maven,jboss,jboss-arquillian,Postgresql,Jakarta Ee,Maven,Jboss,Jboss Arquillian,我正在使用postgresql、JBoss7.1和J2EE6。 我的项目结构有1个ear,1个JAR容纳EJB,1个WAR容纳web前端 我将postgresql驱动程序作为JBoss模块交付,并将standalone.xml更改为引用数据源。 有了以上这些,一切都很好 现在我想使用arquillian对一个带有postgres数据源的jboss托管实例进行测试。我不想更改maven下载的jboss,因为我想在我的应用程序中提供所有依赖项(唯一可以接受的是jboss上standalone.xml
ear
项目的EarContent/lib
中开始使用postgresql jar,那么在启动jboss时,我会发现缺少/未满足的依赖项,看起来jboss无法找到部署在standalone/deployments
中的驱动程序。
浏览网页ppl,给出如何将postgres驱动程序与模块一起使用的示例,但这不是我想要做的。我想将postgresql驱动程序与应用程序一起发布,这样我就可以不费吹灰之力地控制版本(而且我可以针对postgres进行测试,而无需将模块添加到我将使用arquillian进行测试的jboss中)
我如何添加应用程序附带的postgres驱动程序,而不会在JBoss中发生缺失/未满足的依赖项错误
如果这是不可能的,我如何在每次执行clean
目标时不手动更改JBoss文件?例如modules和standalone.xml。不可能在应用程序中提供驱动程序()
不过我找到了解决问题的方法:
在maven中为org.jboss.as:jboss as dist:7.1.1.创建一个本地存储库。最终
,本地存储库将有一个自定义的jboss发行版,其中包含所需的驱动程序作为模块(必要时使用不同的artifactId/groupId)
当您进行测试时,您将使用自定义本地存储库而不是官方存储库,然后您将完全控制使用arquillian进行测试时需要哪些文件。我认为这是很难实现的。请参阅此评论,解释原因:您可能可以使用类加载器执行某些操作,但由于这也是对提供的jboss的更改,因此您可能无法接受eitherOk,因此我如何使用arquillian执行此操作,而不必手动更改jboss管理的文件?有API吗?这也可以看作是一个答案。我不知道,我发现:这可能有帮助,那就是为jboss部署添加资源,而不是操纵jboss文件本身