2012-08-28 59 views
0

我是Spring MVC的新手。我創建接受一個FileOutputStream中並如下寫入XML到一個新的彈簧控制器的方法:Spring FileNotFoundException ..(沒有這樣的文件或目錄)

@RequestMapping(value = "/xml", method = RequestMethod.GET, produces = MediaType.APPLICATION_XML_VALUE) 

public final void getMappingsAsXML(HttpServletResponse response) {  
    Customer customer = getCustomerMappings(); 
    try { 
      // Generates xml file 
      xmlHelper.save(customer, new StreamResult(new FileOutputStream("/WEB-INF/content/customermapping.xml"))); 
      // print to browser 
      // read generated file and write to response outputsteam 
     } catch (XmlMappingException e) { 
      e.printStackTrace(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
} 

然而,上述代碼拋出以下例外:

java.io.FileNotFoundException: /WEB-INF/content/customermapping.xml (No such file or directory) 
    at java.io.FileOutputStream.open(Native Method) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:194) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:84) 

內容目錄已經存在於WEB-INF文件夾。另外,有沒有更好的方法在春季寫文件到瀏覽器?

[順便說一句,我使用maven]

+0

您想從應用程序相關文件讀取/寫入。這就是說,我不會把它放在那裏。哦,馬特已經說了這些 - 廢話。 –

回答

0

使用的/WEB-INF/content/customermapping.xml路徑你告訴的Java在根驅動器寫了一個名爲customermapping.xmlWEB-INF/content目錄下的文件。這聽起來不像你想要的。

嘗試刪除前導/

但是,在託管Web應用程序的相同目錄中寫入文件可能是個壞主意,因爲當您取消部署應用程序(使用默認設置)時,像Tomcat這樣的一些servlet容器只會刪除整個目錄。寫入webapp外部的目錄會更好。

相關問題