2017-10-09 99 views
0

我编写了下面的代码,以便将xml输出写入Tomcat服务器中的文件。当我运行代码时,出现以下错误。我可以知道我的代码中有什么问题吗?提前致谢。它应该创建一个名为test的目录,然后在我的服务器中指定的路径中创建文件test.xml。但是,这是不是做这样做,而是它在我的本地机器寻找一个路径无法将文件写入服务器

java.io.FileNotFounException:C:\测试\的test.xml该系统找不到指定的路径

// write the content into xml file 
       TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
       Transformer transformer = transformerFactory.newTransformer(); 
       DOMSource source = new DOMSource(doc); 

       StreamResult result = new StreamResult(new File("/test/test.xml")); 
       transformer.transform(source, result); 

       // Output to console for testing 
       StreamResult consoleResult = new StreamResult(System.out); 
       transformer.transform(source, consoleResult); 
+0

你的c盘的根目录下有一个/ tmp目录吗? –

+0

不,我想让它写入我的Tomcat文件夹,该文件夹有一个tmp目录 – James

+0

[在tomcat上保存临时文件的最佳实践?](https://stackoverflow.com/questions/23775620/best-practice-to -save-temp-files-on-tomcat)这应该告诉你你需要知道的一切。 –

回答

1

默认情况下,Tomcat将系统属性java.io.tmpdir设置为其tmp目录。所以下面这段代码应该创建一个指向Tomcat文件的File对象tmp:

String tempDir = System.getProperty("java.io.tmpdir"); 
File outputFile = new File(tempDir, "test.xml"); 
+0

如果我想保存它以在Tomcat中创建其他目录,然后将该文件保存在该目录中,那么我应该做什么 – James

+0

您可以在'webapps'中计算相对于应用程序文件夹的文件位置:https:// stackoverflow .com/questions/3632608/tomcat-actual-path-for-new-file-creation –

+0

虽然我不会推荐这样做。可以使用CATALINA_BASE中的引擎和运行时配置中的引擎以及CATALINA_HOME中的文件启动Tomcat。所以细节可能会有所不同。任何带永久本地文件存储的解决方案都不可移植(例如,当您有多个Tomcat实例负载平衡时) –