bonjour,
Voici mon probleme
j'ai crée une archive war pour des tests (Cactus)
le problème est que dans mes classes java je fais appel à des fichiers de tests(xml) qui sont contenus dans un répertoire qui s'appelle testfiles.
par exemple dans mon code Java
j'ai ceci
Code :
- package tests.catcus;
- //import
- public class MyCactusTest extends ServletTestCase{
- public static final String DIRECTORY_TEST="./testfiles/";
- public void testToto() throws IOException{
- String ficheTest=getFileToTest("monfichierTest.xml" );
- //envoie la requet HTTP avec le contenu du fichier que je vient de lire
- }
- private String getFileTotest(String file) throws
- IOException {
- InputStream stream = new FileInputStream(DIRECTORY + File.separator +
- file);
- if (logger.isDebugEnabled()) {
- logger.debug("getting Input Stream for file : " + file);
- logger.debug("InputStream is null ? : " + (stream == null));
- }
- return getContenuFichier(stream);
- //getContenuFichier(String) permet de récupérer le contenu d'un fichier XML
- }
- }
|
Mon probleme est que mes tests foirent à cause d'une erreur claire et précise du type
(file machin.xml not found), mais que je n'arrive aps à resoudre
En voici une trace
Code :
- ./testfiles/monFichierTest.xml (No such file or directory)
- java.io.FileNotFoundException: ./testfiles/monFichierTest.xml (No such file or directory)
- at java.io.FileInputStream.open(Native Method)
- at java.io.FileInputStream.<init>(FileInputStream.java:106)
- at java.io.FileInputStream.<init>(FileInputStream.java:66)
- at tests.cactus.GetProfileTestCase.getInputStream(Unknown Source)
- at tests.cactus.GetProfileTestCase.beginGetProfile01(Unknown Source)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at org.apache.cactus.internal.client.ClientTestCaseCaller.callGenericBeginMethod(ClientTestCaseCaller.java:358)
- at org.apache.cactus.internal.client.ClientTestCaseCaller.callBeginMethod_aroundBody0(ClientTestCaseCaller.java:192)
- at org.apache.cactus.internal.client.ClientTestCaseCaller.callBeginMethod_aroundBody1$advice(ClientTestCaseCaller.java:124)
- at org.apache.cactus.internal.client.ClientTestCaseCaller.callBeginMethod(ClientTestCaseCaller.java)
- at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest(ClientTestCaseCaller.java:141)
- at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient(AbstractCactusTestCase.java:215)
- at org.apache.cactus.internal.AbstractCactusTestCase.runBare(AbstractCactusTestCase.java:133)
- at org.apache.cactus.server.runner.ServletTestRunner.run(ServletTestRunner.java:315)
- at org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody0(ServletTestRunner.java:193)
- at org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody1$advice(ServletTestRunner.java:124)
- at org.apache.cactus.server.runner.ServletTestRunner.doGet(ServletTestRunner.java)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
- at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
- at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
- at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
- at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452)
- at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
- at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
- at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
- at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
- at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
- at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
|
Ma question est de savoir à quel endroit dois-je placer les fichiers de tests au niveau du war afin de pouvoir y acceder en relatif comme c'est indiqué dans le code java.
est -ce dans le WEB-INF??? ou il faut que je foute mes fichiers de tests dans le meme repertoire que mes fichiers.class.
Sinon je seche depuis hier soir la dessus, si quelqu'un a une idée merci d'avance.
---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein