• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 319
  • Last Modified:

Not writing to file

I have a bean with the following constructor, it does not write to the file when used as a bean, but when i create a main method and create an instance of the class and run it as a class the file does not get written to. Why? and how do i make it write to a file when used as a bean

public Taxonamy()
{
      try
      {      
            fw = new FileWriter("taxonamyTree.txt",true);
            fw.write("kjffkjsdafdsj");
            fw.flush();
            fw.close();
      }
      catch(IOException e)
      {
            setError("ERROR OPENING FILE");
      
      }
}
0
danBosh
Asked:
danBosh
  • 6
  • 4
  • 3
  • +1
1 Solution
 
jimmackCommented:
When you say it doesn't write to the file (when used as a bean), do you mean that the exception is thrown or that an empty file is created?

Where is the bean being used?  It may be a permission problem (eg. no write permissions for the directory or file that you are trying to write to).

Try adding the following inside the catch:

System.out.println("IOException from Taxonamy:" + e.toString());

This should give you some more detail about the exception.  (If you're using Tomcat, the output will appear in /logs/catalina.out).
0
 
TimYatesCommented:
My guess would be the constructor is never called when it's used as a bean...

I'm not sure if this is normal behaviour for Beans, but I guess so, as your code is doing it ;-)

Can't you make the file writing a method, and then call invoke method from the JSP?
0
 
jimmackCommented:
>>  My guess would be the constructor is never called when it's used as a bean.

Not really my area, but is this right?  Surely a bean constructor must be called somewhere.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
danBoshAuthor Commented:
tim: i dont think it is that i just put the code in there for simplicity, it didnt work in other locations of the bean either
0
 
danBoshAuthor Commented:
and the constructer is called
0
 
jimmackCommented:
Do you get an exception?
0
 
danBoshAuthor Commented:
it doesn't print to the logs and there is no catalina.out in the tomcat directory
0
 
jimmackCommented:
Are you sure there's no catalina.out?  It should be in the logs directory below the tomcat installation.
0
 
TimYatesCommented:
Sounds like a securityexception...

It could be you dont have write privs to that directory (if you are running on Linux/Unix)

You might also be running Tomcat with the security manager, in which case you'll have to grant rights to create this file...

http://dbforums.com/arch/182/2003/8/731227

(at the bottom)
0
 
danBoshAuthor Commented:
jim: yes i perfomed a search for it, and it not there

tim: its windows, ill try that link
0
 
kennethxuCommented:
>>           fw = new FileWriter("taxonamyTree.txt",true);
The file will be created in the dir that tomcat starts from, most likely in tomcat/bin, not the dir where jsp page is. do you have the write permission in tomcat/bin?
0
 
danBoshAuthor Commented:
when i ran the class in command line i created the file taxonamyTree.txt i the web-inf\classes\..\..\ directory where the class is and it wrote to that file, so why would it write to somewhere different when used in conjuntion to a JSP? but ill gp and check anyway
0
 
kennethxuCommented:
because you current directory of dos windows is in that directory when you run in command line.
when you run in jsp, it's the directory that you start the tomcat.
0
 
danBoshAuthor Commented:
outstanding ken, and thanks tim

0
 
kennethxuCommented:
glad to know your problem is resolved :-)
0
 
TimYatesCommented:
:-)

Good luck!
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 4
  • 3
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now