【问题标题】:How to change the working directory of a tomcat server to WEB-INF of my application?如何将 tomcat 服务器的工作目录更改为我的应用程序的 WEB-INF?
【发布时间】:2015-05-13 16:01:19
【问题描述】:

我有一个 bean 类,我在其中使用放在 application/WebContent/common 文件夹中的文件。我一直在参考这个文件如下

File xsltfile = new File("../common/xhtml2fo.xsl");

在我的 Eclipse 中,我的工作目录配置为

${workspace_loc:enovia/WebContent/WEB-INF}

效果很好。但是,在域框上对其进行测试时,我得到了一个找不到文件的异常,因为它在 {tomcat-path}/bin/../common/xhtml2fo.xsl 中寻找文件。

我无权访问域框中的 bean 类。所以我现在唯一的选择是将我的 tomcat 工作目录更改为 WEB-INF。

【问题讨论】:

  • 使用相对路径,卢克……只有西斯用绝对路径写路径。
  • 那不是相对路径吗?

标签: java eclipse tomcat


【解决方案1】:

您可以使用这种方法读取WEB-INF 中的文件:

InputStream in = Thread.currentThread()
                       .getContextClassLoader()
                       .getResourceAsStream( "xhtml2fo.xsl" );

如果您在 servlet 中,甚至更简单:

getServletContext().getResourceAsStream( "/WEB-INF/xhtml2fo.xsl" )

干杯,

【讨论】:

  • 我认为如果资源在WEB-INF文件夹中,应该是ServletContext.getResource。编辑:我们同时写了它:)
  • 文件是tomcat/webapps/app/common文件夹,不在WEB-INF中。话虽如此,现在,我无法更改域框中的代码。我可以对我的 tomcat 服务器进行配置更改以将我的应用程序 WEB-INF 设置为工作目录,这样“../common/xhtml2fo.xsl”就可以工作了吗?
  • 你能重建应用程序并通过修复部署它吗?还是这些硬编码的东西你不能改变?
  • 不...如果不经过一天的处理,我无法更改它。 :(
  • 好吧,就目前而言 - 获取它提供的文件路径(tomcat 的路径),将文件放在那里(你可以从 webapps 中提取它)并且永远不要再这样做 - 只需在你修复它时有时间。干杯。
猜你喜欢
  • 2011-01-15
  • 1970-01-01
  • 2014-09-22
  • 2018-11-29
  • 2017-04-18
  • 1970-01-01
  • 2014-11-08
  • 2015-06-26
  • 1970-01-01
相关资源
最近更新 更多