使用 arquillian+omnifaces 运行测试时出现 java.util.ServiceConfigurationError

标签 java jsf jboss-arquillian omnifaces

我收到以下错误

"java.util.ServiceConfigurationError: javax.servlet.ServletContainerInitializer: Provider org.omnifaces.ApplicationInitializer not found"

在运行 Arquillian 测试时。

我已经把我能做的最基本的测试用例放在这里:https://www.dropbox.com/s/kou5v8kqs5g4g4m/test.zip?dl=0

最佳答案

在尝试运行内置 war 并在 Wildfly 独立运行后,我设法将问题缩小到 Arquillian,在测试 Arquillian+Glassfish 嵌入并运行没有问题后,我认为问题是 Arquillian+Wildfly,更多谷歌搜索我发现了与使用嵌入 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>

解决方案最终不是使用嵌入了 Arquillian 的 Wildfly,而是托管。

关于使用 arquillian+omnifaces 运行测试时出现 java.util.ServiceConfigurationError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30811971/

相关文章:

java - IOException,必须捕获或声明抛出

jsf - 如何使用 JSF 2.0 Facelets 在 XHTML 中包含另一个 XHTML?

java - 当表单被 JavaScript 禁用时,JSF 表单不会被提交

java - 使用java的小型http服务器?

java - 将 boolean 数组中的所有值设置为 true

java - Cukespace Hook 之前/之后的场景?

java - 如何使用 Arquillian - Java EE 7 测试登录/身份验证

java - 如何使用 Arquillian 模拟服务?

java - 从Web爬取数据,当页面在页尾动态加载数据时

JSF 转换器验证错误 : value is not valid for SelectOneMenu UIComponent