Link to home
Start Free TrialLog in
Avatar of JNic
JNic

asked on

Access is denied when writing to file


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
Avatar of sciuriware
sciuriware

It seems you don't have write access to the directory.

;JOOP!
ASKER CERTIFIED SOLUTION
Avatar of Mayank S
Mayank S
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of JNic

ASKER

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.
>> 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.
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.
Avatar of JNic

ASKER

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
Answer accepted for a different solution. I am confused which one solution solved the problem.
The answer was that the user account under which the Jaguar process was running was different, and that is what my comment suggested.
Avatar of JNic

ASKER

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
I understand. I am sorry for not reading mayankeagle solution completely.