2015-06-12 6 views
6

Ich erhalte die folgenden Fehlerjava.util.ServiceConfigurationError wenn Tests laufen Arquillian mit + omnifaces

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

wenn Arquillian Tests ausgeführt werden.

ich den grundlegendsten Testfall setzen habe ich hier konnte: https://www.dropbox.com/s/kou5v8kqs5g4g4m/test.zip?dl=0

+0

Verwenden Sie Arquillian + Maven oder Arquillian Standalone? Das Problem zumindest weist darauf hin, dass die OmniFaces-Bibliothek in Runtime-Klassenpfad von Arquillian fehlt. – BalusC

+0

Ich benutze Arquillian + Maven, während es wie ein Klassenpfad Problem scheint, ist der seltsame Teil, dass die org.omnifaces.ApplicationInitializer im selben Glas wie der META-INF/services/javax.servlet.ServletContainerInitializer ist, da dieser Dienst ist was verursacht, dass der ApplicationInitializer geladen wird. Ich habe das Problem gefunden und werde die Lösung bald veröffentlichen. – LoneWolf

Antwort

7

Nach dem Versuch, einen eingebauten Krieg und es läuft auf Wildfly Standalone zu laufen, habe ich es geschafft, das Problem zu Arquillian zu verengen, nach der Prüfung des Arquillian + Glassfish eingebettete und ohne Probleme zu laufen, dachte ich, das Problem sei Arquillian + Wildfly, einige mehr googeln und ich fand ähnliche Probleme, die mit der Verwendung von Wildfly mit Arquillian verwandt waren und dass Wildfly mit Arquillian gut läuft, der Grund, warum ich nicht wirklich sagen kann scheint wie eine Art Bug, scheint aber auch wie ein allgemeiner Hinweis online zu sein, verwaltete oder entfernte Container für die Arquillian-Tests anstelle der eingebetteten zu verwenden.

So ist die Lösung ganz einfach diese einfach entfernt: Das

<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> 

und hinzugefügt:

<dependency> 
     <groupId>org.wildfly</groupId> 
     <artifactId>wildfly-arquillian-container-managed</artifactId> 
     <version>8.2.0.Final</version> 
     <scope>test</scope> 
    </dependency> 

Die Lösung endet nicht Wildfly mit Arquillian eingebettet Verwendung wird, sondern verwaltet.