4

我正在使用 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

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

4

2 回答 2

4

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

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

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

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

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

指定服务器路径(即 catalina.base)和部署路径。

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

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

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

编辑:

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

于 2012-07-09T15:52:38.767 回答
1

如果您在打开服务器配置页面时发现修改字段被禁用,只需关闭您的服务器并通过右键单击服务器 > 添加删除 > 删除所有应用程序删除所有应用程序,然后再次右键单击 > 然后清理。它将取消部署当前服务器上的所有应用程序,并允许您修改服务器设置。

于 2017-04-27T12:48:36.957 回答