2015-01-14 46 views
1

我在Windows 8.1上的Tomcat 7.0.57上有一個Web應用程序將它作爲服務運行,它被指示覆制文件在本地網絡共享目錄上,例如\\ Network_machine \ Shared_folder,但無法這樣做。無法讀取網絡共享文件夾上的文件[webbapp作爲服務在tomcat上]

我能夠在沒有任何身份驗證的情況下訪問Windows資源管理器中的共享文件夾,因爲它具有權限,可供所有人閱讀。下面的代碼爲目錄檢查存在:

String sourceURL = this.servletContext.getInitParameter("sourceURL"); 
    log.debug("---------->Source reports directory : " + sourceURL); 
    File sourceDir = new File(sourceURL); 
    log.debug("---------->Source directory exists : "+sourceDir.exists()); 
    if (sourceDir.exists()) { 
    String files[] = sourceDir.list(); 
    log.debug("----------> Total files in source dir :" + files.length); 
    List<String> newFiles = new ArrayList<String>(Arrays.asList(files)); 
    newFiles.removeAll(processedFiles); 
    log.debug("----------> Latest files in source dir :" + newFiles.size()); 
    File file = null; 
    if (newFiles.size() > 0) { 
     for (String fileName : newFiles) { 
     file = new File(sourceURL + Constants.FILE_SEP + fileName); 
     latestSourceFiles.add(file); 
     } 
    } 
    } else { 
    log.debug("Source reports directory " + sourceURL + " is not found"); 
    } 

附加信息:

日誌 - 存在源目錄中返回「假」。

+1

您將需要一個驅動器映射...所以在窗戶'NET USE * \\服務器\ share'或使用安裝(運行在命令提示符下使用net use) –

+0

什麼帳戶是服務正在運行?您確定該帳戶可以訪問網絡資源嗎? –

+0

@MarkWagoner ..該服務正在LocalSystem帳戶下運行。 – rsr

回答

0

正如Kenneth所說,您需要將共享文件夾映射到驅動器,然後直接寫入該驅動器。

http://windows.microsoft.com/en-us/windows/create-shortcut-map-network-drive

+0

映射驅動器沒有幫助...因爲tomcat作爲一個服務與本地系統帳戶一起運行。 – rsr

+0

我會在稍後嘗試,但不能更改帳戶以運行tomcat服務嗎? http://superuser.com/questions/301864/run-tomcat-service-as-different-user-on-windows-7 –

+0

Guillermo Gefaell ... It Worked!但我的要求是它應該在本地系統帳戶下運行,如果可以,請引導我。再次感謝。 – rsr

相關問題