我收到以下错误
“java.util.ServiceConfigurationError: javax.servlet.ServletContainerInitializer:Provider 未找到org.omnifaces.ApplicationInitializer“
运行Arquillian测试时。
我已将最基本的测试用例放在此处:https://www.dropbox.com/s/kou5v8kqs5g4g4m/test.zip?dl=0
答案 0 :(得分:8)
在尝试运行内置战争并在Wildfly独立运行后,我设法将问题缩小到Arquillian,在测试Arquillian + Glassfish嵌入并运行没有问题后,我发现问题是Arquillian + Wildfly,更多的Google搜索我发现类似的问题与使用嵌入Arquillian的Wildfly相关,并且使用Arquillian管理的Wildfly运行良好,我之所以无法辨别的原因似乎是某种bug,但也似乎是在线使用的一般建议用于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>
该解决方案最终没有使用嵌入Arquillian的Wildfly,而是管理了。