joaosavio
joaosavio

Reputation: 1489

File not found in EAR packaging

Inside my .ear

-META-INF
-lib
-ejb-shared.jar
-ejb.jar
    -com/ejb/... (classes)
    -fileXml.xml (file I'm trying to access)
-web.war

Some description:

The problem is that I can't access fileXml.xml. Inside an EJB bean (of ejb.jar) I've done:

File f = new File("fileXml.xml");
System.out.println(f.exists()); // returns false!

I don't know why, but it seems that fileXml.xml is not in the classpath, althougth it's present in the .ear, or maybe I'm doing things in the wrong way!

Upvotes: 1

Views: 308

Answers (1)

Brett Kail
Brett Kail

Reputation: 33956

Using new File("fileXml.xml") will reference a file in the current working directory of the application server JVM, not relative to your specific application. Try using:

URL url = getClass().getResource("/fileXml.xml");
boolean exists = url != null;
System.out.println(exists);
InputStream input = url.openStream();
// ... read and close input stream

Upvotes: 2

Related Questions