Léa Massiot wrote:
Hello,

Thank you for reading my post.

Here is my problem:
- I have two machines S and M on the same LAN.
- S is a Debian machine running a Tomcat server.
- And I have a WebApp W deployed on this Tomcat server.
- M is a Windows machine which hosts some files for W. - S and M belong to the same Samba domain.
- On M, the WebApp files are stored in a directory: "C:\p1\p2\".
- "p2" is a share.
- Somewhere in the WebApp Java code, I have declared a "final" to store the
files path.
  Here is what I wrote:
  public static final String s_path = "//M/p2/";
- Now, when I manipulate the WebApp in such a way a file "f.xml" located in
"C:\p1\p2\p3\" has to be opened and read, I get the following error:
  java.io.FileNotFoundException: /M/p2/p3/f.xml (No such file or directory)
My question is: how do I have to declare "s_path" to properly access, from S
(W), those files which are stored on M?
(I basically want to have the data on one machine and Tomcat on another
machine).

Without discussing the pros and cons of the underlying logic, the issue here is that Java (on S) does not understand that "//M/p2/" means a "network share" in Microsoft notation.
(Only Windows understands that).
What you need to to is "mounting" that network share to a local (Linux) 
mountpoint on S.
Then in Java you access that mountpoint, not the original share.

This is quite Off-Topic regarding Tomcat and even Java, but here is an idea :

On the Linux machine,

1) create an empty directory /mnt/M/p2

2) in the file /etc/fstab, add the following line (all on one line):
//M/p2 /mnt/M/p2 cifs rw,username=xxx,password=yyy,uid=uuu,gid=ggg,dir_mode=0775,file_mode=0774 0 2

(xxx and yyy are the (Windows) user-id and password needed to access that share; uuu and ggg are a Linux user-id and group under which the remote files will "look like" under Linux). And you will need to get someone to help you with the other parameters, to adjust them to your needs.

3) under Linux, isssue the command "mount -a". This will read the file /etc/fstab, and mount all the mountpoint that ar not already mounted (like the new one above).

After this, under Linux, whenever you access the directory "/mnt/M/p2", you will see the files on the remote M nachine.
And in Java, you then access this the same way, as "/mnt/M/p2".




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to