• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

File load in bean

 
Tmmet Johnson
Ranch Hand
Posts: 56
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I want to read a file in EJB in bean method.
I have the file (error.prop) in the ejbmodule/META-INF folder.

When I right click on the ejb and click "Run on Server" to test it, I get
an Exception.Basically,the call fails in File.exists() method.
Below is the code.Can anyone please tell me the problem in the below code.

I know I can use ResourceBundle to load the file.But,want to know the
problem in the below code.The code looks ok to me.I tried putting the file
directly in ejbModule folder.No luck. I also tried setting strMessageFile
in the below code to "error.properties", "//error.properties" etc., It did
not work.

public class MessageBean implements javax.ejb.SessionBean {

public String getMessage(){
try {
String strMessageFile = "\\error.properties";
java.io.File messageFile = new java.io.File(strMessageFile );
if (messageFile .exists()){
//Get the error message from file
System.out.println("File exists");
return "File Exists";
}
else{
System.err.println( "Message file does not exist" );
return "File Does not Exist";
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
 
Valentin Tanase
Ranch Hand
Posts: 704
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Tmmet,

First of all you have to understand that performing IO operation within your ejbs is not recommended and ejbs specs strictly forbid it. You might consider using the ResourceBoundle class or the less orthodox approach of calling the ClassLoader.getResourceAsStream() method. On the other hand although is been a while since I looked at the io api, it occurs to me that opening a file which is inside of a jar module (which in turn could be inside of a ear file) is not going to be easily done using io api. I believe you should open the jar file first, un-jar it and finally opening the properties file. Again io is not suitable for this task in my opinion you should better try using another approach.
Regards.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic