4

Lucene を使用して PDF ドキュメントのインデックスを作成しています。Eclipse indigo を IDE として使用し、tomcat7 をサーブレット コンテナーとして使用しています。問題は、ドキュメントのインデックスを作成し、後でダウンロードするために元のドキュメントを保存したい場合ですが、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>

次に、このようにサーブレット 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 ワークスペースが期待するディレクトリ構造から、Web アプリケーションが期待する形式にファイルを再編成する必要があります。

> [サーバー] タブをクリックします。サーブレットコンテナ(あなたの場合はTomcat 7)を右クリックして開きます(F3はEclipseのショートカットです)。

を含むサーバーパスオプションが表示されるはずです

サーバー パス (つまり、catalina.base) とデプロイ パスを指定します。

ここで展開場所を指定できます。

注: 変更を加えるには、モジュールが存在しない状態でサーバーを公開する必要があります。

そのため、Web アプリケーションのデプロイを解除し、場所を変更してください。

編集:

質問とは無関係: インデックスを保存するために、webContent / webapp の外側に別のディレクトリを作成する必要がありLuceneます。このプラクティスは、Tomcat プロダクションにアプリケーションをデプロイするときに役立ちます

于 2012-07-09T15:52:38.767 に答える
1

サーバー構成ページを開いたときに変更のフィールドが無効になっていることがわかった場合は、サーバーを閉じて、サーバーを右クリックしてすべてのアプリケーションを削除し、削除を追加>すべて削除してから、もう一度右クリック>クリーンします。現在サーバー上にあるすべてのアプリの展開が解除され、サーバー設定を変更できるようになります。

于 2017-04-27T12:48:36.957 に答える