我建立的路径,在日食这样的:

ProjectName
   -- WEB-INF
      -- classes
         -- myClass.class
      -- configs
         -- myConfig.xml

我绝对路径的配置目前看起来像这样:

C:\Development\Java\ProjectName\WEB-INF\configs\myConfig.xml

我使用的是修订的结合,并且它期待一个FileInputStream.该FileInputStream需要一流的XML配置文件。然而,我不能找出如何获得FileInputStream我config,和我保持一FileNotFoundException.

我想这配置可以装在这样一种方式,有人没有硬编码的路径的配置,因为我计划在释放项目的开放源。我看到很多例子,某人只是硬编码完全绝对的道路,但是我需要的东西更加灵活的"喜欢"这样的:

新FileInputStream("/WEB-INF/configs/myConfig.xml");

谢谢!

有帮助吗?

解决方案

我建议把该myConfig.xml在WEB-INF / classes目录代替,并通过类加载器加载它,因为它是在类路径中。调用的getResourceAsStream()在servlet上下文将返回,您可以使用一个InputStream。这是相对于上下文根,这样你就可以拿起WAR并把它放在任何地方 - 你的代码仍然可以工作。

其他提示

你可以得到输入流的相对路径在网络INF相当轻松 ServletContext.getResourceAsStream() 方法(如果是的话,为什么不试 在这里,)及其变体。

例如,在你的selvlet码你可以这样做:

getServletContext().getResourceAsStream("/WEB-INF/configs/myConfig.xml") // your file
getServletContext().getResource("/WEB-INF") // URL to WEB-INF dir
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top