Solved

Access is denied when writing to file

Posted on 2006-06-12
10
537 Views
Last Modified: 2008-02-01

Hi!

I am writing a small java module inside a larger application that is runned in Jaguar server. This module is basically responsible for creating a file and then moving it to a destination directory which is placed on another server.

Clearly I am experiencing some access problem here, because I cannot successfully send anything to my target directory.

First I tried to to like:

File f = new File("my filename");
File d = new File("my target filename");
f.renameTo(d);

but that did not work - no exception was thrown, but the file was not moved.

Then I tried to copy the file by re-writing it to the destination with a FileOutputStream like this:

File d = new File("my target filename");
FileOutputStream fos = new FileOutputStream(d);

but that resulted in a FileNotFound exception with the message "Access is denied".

The funny thing here is, that if I run my module from java command-line it works fine!! So there seems to be some access-limitations applied on the virtual machine that is started inside jaguar.

Any ideas on how to proceed on this?

Best regards,

Nicolai
0
Comment
Question by:JNic
  • 3
  • 3
  • 3
  • +1
10 Comments
 
LVL 24

Expert Comment

by:sciuriware
Comment Utility
It seems you don't have write access to the directory.

;JOOP!
0
 
LVL 30

Accepted Solution

by:
mayankeagle earned 250 total points
Comment Utility
>> but the file was not moved.

Make sure the original file was not read-only. Also make sure your path was correct.

>> So there seems to be some access-limitations applied on the virtual machine that is started inside jaguar

Looks like there is a JVM version difference, or the two processes are running under different accounts.
0
 
LVL 1

Author Comment

by:JNic
Comment Utility
Hi, and thanks for the replys!

mayankeagle: That does not sound unreasonable :-) The service that starts jaguar-server is started from its own account - perhaps there could be some permission-problem with that account.

About your other thought: Should a different JVM version really affect this? Do you have some concrete facts that supports that explanation?

sciuriware: As mentioned the java-module works when ran from command-line, but as mankayeagle writes, it might be possible that there are differences of permissions of my login-account and the jaguar-service account

I'll look into the account permissions tomorrow.
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
>> Should a different JVM version really affect this

Not really, I would look into it only if I am sure that the Jaguar one is using the same version.
0
 
LVL 4

Expert Comment

by:Yagantappa
Comment Utility
As it works fine when your run thru command line, there should be directory access problem for user that starts Jaguar server.

Try to provide write access for user that starts Jaguar server.
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 1

Author Comment

by:JNic
Comment Utility
The problem was solved by assigning a specific user to Jaguar service who did have write permissions to the directory.

Earlier the service was assigned to local user, which gave unpredictable results, since each time the service was restarted it used the current users permissions.

Thanks for the help :-D
0
 
LVL 4

Expert Comment

by:Yagantappa
Comment Utility
Answer accepted for a different solution. I am confused which one solution solved the problem.
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
The answer was that the user account under which the Jaguar process was running was different, and that is what my comment suggested.
0
 
LVL 1

Author Comment

by:JNic
Comment Utility
Yes, mayankeagle wrote: "or the two processes are running under different accounts"

which was exactly the case here: My command-line java was running under a different account than the jaguar service.

Yagantappa, I know that you were right also and thanks for your comment, but mayankeagle was there first with a 100% correct answer, so I had to give him 100% of the points...

Best regards,

Nicolai
0
 
LVL 4

Expert Comment

by:Yagantappa
Comment Utility
I understand. I am sorry for not reading mayankeagle solution completely.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now