Re: renameTo
Michael B Allen <[email protected]> Wed, 14 Nov 2012 11:26:17 -0500
| Newsgroups | gmane.network.samba.java |
|---|---|
| Message-ID | <CAGMFw4jvyGDM3jxWGCBQ-fqDj6P64P8+9Jtm4YTdcTqFZaet3Q@mail.gmail.com> |
On Mon, Oct 22, 2012 at 1:52 PM, amitsharma551 <[email protected]> wrote: > I am using jcifs-1.3.14-kohsuke-1.jar in my application for DFS server file > operations. > > I am able to put/delete files in DFS server, but when I am trying to rename > existed file using renameTo() method. it gives me "jcifs.smb.SmbException: > The system cannot find the path specified" though I am using same dfs path > for putting/deleting files. I read post, this issue is fixed in 1.2.24 > jar..I am using recent updated version of jar. > > Please suggest me, what needs to be done this case. Am I need to do any > configuration for renaming files ? > I feel, renaming doesn't work DFS ...is that correct ? Hi Amit, Renaming should absolutely work with DFS equally well as without. When you report an issue, it is customary to post the full stack trace. A proper diagnosis cannot be performed without a full stack trace. I suspect that the error "The system cannot find the path specified" is accurate and that you have a replication issue with your DFS volumes. That error message is coming from the server so the path supplied by JCIFS is either wrong or the file really is missing. Look for the file at each location the DFS target is pointing to. I think you'll find that it's actually not present. However, Windows can recover from this type of error by iterating through the DFS volumes until if finds what it's looking for (at least I think this is how it can still work when there's a replication issue). JCIFS does not implement that logic. It is on the TODO list (and has been for years ...). If you post a full stack trace, I might be able to tell you more. > jcifs.Config.setProperty("jcifs.smb.client.domain", domain); > jcifs.Config.setProperty( "jcifs.smb.client.username", userid ); > jcifs.Config.setProperty( "jcifs.smb.client.password", password ); You should not set credentials in this way. These properties set the default credentials and act like the "workstation account" of the client as though it were a Windows computer. The correct way to supply credentials is to create an NtlmPasswordAuthentication object and then pass that to SmbFile* constructors. Mike -- Michael B Allen Java Active Directory Integration http://www.ioplex.com/