IOException-parsing XML-Dokument aus dem class path resource - Datei nicht vorhanden - Frühling
Ich bin mir bewusst, dass diese Frage über das spring-xml-Konfigurationsdatei wurde nicht gefunden in der Ausführung wurde mehrmals gefragt, bevor, aber keine der anderen Antworten scheint zu funktionieren für mich.
Ich versuche, führen Sie einige Tests in einen Maven-Projekt mit Spring und JUnit und ich bekomme diese Fehler die ganze Zeit:
T E S T S
Läuft es.udc.jcastedo.NosaTenda.test.Modell.productoService.ProductoServiceTest
12-Wochen-2014 13:37:33 org.springframework.test.Kontext.TestContextManager retrieveTestExecutionListeners
INFO: Konnte nicht instanziiert TestExecutionListener [org.springframework.test.Kontext.web.ServletTestExecutionListener]. Geben Sie einen benutzerdefinierten listener Klassen, oder nehmen Sie die Standard-listener-Klassen (und deren benötigten Abhängigkeiten) zur Verfügung. Problematische Klasse: [javax/servlet/ServletContext]
12-Wochen-2014 13:37:33 org.springframework.Kontext.Unterstützung.ClassPathXmlApplicationContext prepareRefresh
INFO: Erfrischend org.springframework.context.support.ClassPathXmlApplicationContext@2f8bbc98: Datum der Inbetriebnahme [Tue Aug 12 13:37:33 CEST 2014]; root-Kontext-Hierarchie
12-Wochen-2014 13:37:33 org.springframework.Bohnen.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [nosaTenda-spring-config.xml]
Tests run: 2, Failures: 0, Errors: 2, Übersprungen: 0, Time elapsed: 0.225 Sek. <<< FEHLER!Ergebnisse :
Tests Fehler:
es.udc.jcastedo.NosaTenda.test.Modell.productoService.ProductoServiceTest
es.udc.jcastedo.NosaTenda.test.Modell.productoService.ProductoServiceTest: could not initialize class es.udc.jcastedo.NosaTenda.test.Modell.util.DbUtilTests run: 2, Failures: 0, Errors: 2, Übersprungen: 0
Dies ist ein link auf die komplette Spur von den surefire-report: https://dl.dropboxusercontent.com/u/2635926/es.udc.jcastedo.NosaTenda.test.model.productoService.ProductoServiceTest.txt
Wo findet man diese Zeilen:
Verursacht durch: org.springframework.Bohnen.factory.BeanDefinitionStoreException: IOException Parsen XML-Dokument aus dem class path resource [nosaTenda-spring-config.xml]; verschachtelte Ausnahme ist java.io.FileNotFoundException: class path resource [nosaTenda-spring-config.xml] kann nicht geöffnet werden, weil es nicht vorhanden ist
Verursacht durch: java.io.FileNotFoundException: class path resource [nosaTenda-spring-config.xml] kann nicht geöffnet werden, weil es nicht vorhanden ist
es.udc.jcastedo.NosaTenda.test.Modell.productoService.ProductoServiceTest verstrichene Zeit: 0.003 Sek <<< FEHLER!
java.lang.NoClassDefFoundError: could not initialize class es.udc.jcastedo.NosaTenda.test.Modell.util.DbUtil
bei es.udc.jcastedo.NosaTenda.test.model.productoService.ProductoServiceTest.cleanDb(ProductoServiceTest.java:52)
DbUtil ist eine Hilfs-Klasse genannt, von allen tests, wo der Kontext initialisiert wird:
public class DbUtil {
static {
ApplicationContext context = new ClassPathXmlApplicationContext("nosaTenda-spring-config.xml");
transactionManager = (PlatformTransactionManager) context
.getBean("transactionManager");
productoDao = (ProductoDao) context.getBean("productoDao");
tiendaDao = (TiendaDao) context.getBean("tiendaDao");
}
...
public static void populateDb() {
...
}
public static void cleanDb() throws Throwable {
...
}
}
Anscheinend liegt das problem, wie es scheint, die xml-config-Datei nicht gefunden, egal was, und es bricht an der ClassPathXmlApplicationContext Methode aufrufen.
Theoretisch, die spring config-Datei liegt, wo es sein sollte, in src/main/resources.
Ich habe versucht, alle Kombinationen, die sich aus dem qualifizierten Namen "/NosaTenda/src/main/resources/nosaTenda-spring-config.xml" zu "nosaTenda-spring-config.xml", mit dem gleichen Ergebnis.
Ich weiß nicht, was falsch mit der Klasse Weg, oder wenn das problem woanders liegt.
BEARBEITEN
Hier ist das pom des Projekts, mir ist gerade eingefallen, dass ich noch ein paar filtern in der build-Sektion, vielleicht habe ich etwas falsch dort-und das ist das problem.
https://dl.dropboxusercontent.com/u/2635926/pom.xml
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel Ihren classpath wäre .../src/main/java/und ClassPathXmlApplicationContext Lesen würden, aus .../src/main/resources.
Dann Ihr test-Klassen wäre in .../src/test/java/und ClassPathXmlApplicationContext Lesen würden, aus .../src/test/resources.
So, schau wo deine test-Anwendung Kontext ist, und legen Sie eine Kopie der xml.
Ok, ich habe die Lösung gefunden, es war woanders.
War ich mit einer Run-Konfiguration mit der forkMode keine parameter, als ich mit einem einzigen test-Klasse. forkMode anscheinend ist veraltet und hat das problem verursacht. Ich ersetzte es mit forkCount 0 und lief einwandfrei, es fanden die spring-xml-Konfigurationsdatei, und sogar die test-version überschreiben einige Parameter, so perfekt. Jetzt muss ich nur noch zum Debuggen eine Tonne von anderen Fehler, dass die Konfiguration 🙂
Dank.