Skip to main content

In a test I can find a xml, in another I can"t



I have an interesting problem, I have two web services defined in a spring-conf.xml file and I have two test classes that live in the same package and every class has its own link to this spring-conf.xml file to call their particular webservice. I am able to get beans from one of my test classes but from the other one I can't and the code is equal in both classes.





In one I have this







import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



public class WSFirstTest {



private ApplicationContext context = new ClassPathXmlApplicationContext(

"WEB-INF/spring-conf.xml");

private WSFirst ws = (WSFirst) context

.getBean("serviceFirstDefault");







in the other one I have this







import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



public class WSSecondTest {



private ApplicationContext context2 = new ClassPathXmlApplicationContext(

"WEB-INF/spring-conf.xml");

private WSSecond ws = (WSSecond) context2

.getBean("serviceSecondDefault");







In the second one my program can't find the spring-conf file, but in the other one is able. What's the problem?





PS Both wservices work fine when I call them from remote, only in local I have this problem.





The test's error:







org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [WEB-INF/spring-conf.xml]; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring-conf.xml] cannot be opened because it does not exist







Thank you for your advises.


Comments

  1. As I know Spring interprets an application context path without starting "/" as a relative path from the same package in which the test class is defined and pathes with starting "/" as fully qualified class path locations (at least in the testing environment). Maybe you should try to use a starting "/".

    It turned out that different test run configurations caused the problem (see comments below).

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?