2013-03-25 47 views
1

我在一個使用焊接CDI和JPA的項目中安裝Arquillian,並試圖使用嵌入式GlassFish容器(我讀了Weld嵌入式容器不支持JPA)。Arquillian中出現多個容器錯誤

我在我的pom.xml中添加了GlassFishContainer,但在運行測試用例時收到錯誤消息。這裏的ID錯誤信息:

Multiple service implementations found for interface 
org.jboss.arquillian.container.spi.client.container.DeployableContainer. 
org.jboss.arquillian.container.glassfish.embedded_3_1.GlassFishContainer,  
org.jboss.arquillian.container.weld.ee.embedded_1_1.WeldEEMockContainer 

似乎我有兩個焊接嵌入式容器和glassFilsh。我再次檢查了我的pom.xml,我剛剛嵌入了玻璃魚。我找不到焊接嵌入式容器的任何跡象。任何想法?!

+0

您可能想要運行'mvn dependency:tree'來查看將Weld-EE容器適配器引入類路徑的內容。我懷疑你同時啓用了兩個配置文件,但它也可能是傳遞性依賴關係。 – 2013-03-25 12:13:59

+0

同意。您的構建類路徑上只能有一個容器。也有可能你沒有使用配置文件,而只是拉入兩個依賴關係。 – 2013-03-25 13:08:43

回答

0

從maven本地存儲庫中刪除一個容器。 Maven本地存儲庫的默認位置是$HOME/.m2/repository/

嘗試刪除org/jboss/arquillian/container/glassfish.embedded_3_1如果您想使用Weld Embedded Server運行測試,請刪除org/jboss/arquillian/container/weld.ee.embedded_1_1

原因是,兩個Jars實現相同的接口和Arquillian無法決定使用哪一個。

+0

即使刪除'〜/ .m2/repository /'也沒有幫助我。我懷疑Maven緩存對這個問題有任何影響,如果它會的話,它會是一個錯誤。 – 2017-10-06 15:59:10

相關問題