gpt4 book ai didi

Eclipse,getRealPath() 的问题

转载 作者:行者123 更新时间:2023-12-05 01:25:16 25 4
gpt4 key购买 nike

我正在使用 Lucene 索引 PDF 文档,我使用 Eclipse indigo 作为 IDE 和 tomcat7 作为 servlet 容器,问题是当我索引文档并希望保存原始文档以供以后下载时,但是 eclipse 将文档放在临时目录中而不是我选择的目录。
这就是我正在做的事情。

我的 web.xml 中有这个参数

    <context-param>
<description>Location to store uploaded file also the location of files to be indexed</description>
<param-name>file-upload</param-name>
<param-value>
folder\
</param-value>
</context-param>

然后像这样在 servlet init() 方法中调用它
filePath = getServletContext().getRealPath("") + File.separator + getServletContext().getInitParameter("file-upload");

简而言之,我试图将文档存储在名为“搜索”的项目中名为“文件夹”的目录中,但 Eclipse 会将其存储在临时位置,如下所示:
C:\Users\Solid\Dropbox\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Search\folder\ir_overview.pdf

但实际路径是这样的:
C:\Users\Solid\Dropbox\workspace\Search\WebContent\folder

知道如何解决这个问题吗?

最佳答案

Eclipse 将项目部署到项目工作区之外的工作目录。

默认情况下,Eclipse 使用 /workspace/.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps部署 Web 应用程序的路径。

它必须将 Eclipse Workspace 期望的目录结构中的文件重新组织成 Web 应用程序期望的格式。

单击 > 服务器选项卡。右键单击 Servlet 容器(在您的情况下为 Tomcat 7)并打开(F3 是 eclipse 的快捷方式)。

您应该能够看到服务器路径选项,其中包含

Specify the server path (i.e. catalina.base) and deploy path.



您可以在此处指定部署位置。

注意:必须在不存在任何模块的情况下发布服务器才能进行更改。

因此,取消部署您的 Web 应用程序并更改位置。

编辑:

与问题无关:您应该在 webContent/webapp 之外创建单独的目录来存储 Lucene索引。当您将应用程序部署到 Tomcat 生产环境时,这种做法会很有用

关于Eclipse,getRealPath() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11398513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com