嘗試運行內置的戰爭和Wildfly獨立運行它後,我設法縮小問題的Arquillian,測試的Arquillian + Glassfish的嵌入式後並且運行沒有問題,我認爲問題是Arquillian + Wildfly,還有更多的使用Google搜索,我發現與使用嵌入Arquillian中的Wildfly相關的類似問題,以及Arquillian管理的Wildfly運行良好,這是我無法真正瞭解的原因看起來像某種錯誤,但也似乎在線上使用託管或遠程容器代替嵌入式代碼進行Arquillian測試。
因此該解決方案是非常簡單的只是移除了這個:
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-arquillian-container-embedded</artifactId>
<version>8.2.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-embedded</artifactId>
<version>8.2.0.Final</version>
<scope>provided</scope>
</dependency>
,並將此:
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
<version>8.2.0.Final</version>
<scope>test</scope>
</dependency>
該解決方案最終被不使用Wildfly嵌入的Arquillian,而是管理。
您是使用Arquillian + Maven還是Arquillian獨立?這個問題至少說明了Arquillian的運行時類路徑中缺少OmniFaces庫。 – BalusC
我使用Arquillian + Maven,雖然它看起來像一個類路徑問題,但怪異的部分是,org.omnifaces.ApplicationInitializer與META-INF/services/javax.servlet.ServletContainerInitializer位於同一個jar中,因爲該服務是是什麼導致ApplicationInitializer被加載。我發現了這個問題,很快就會發布解決方案。 – LoneWolf