4

AWSアプリケーションにHibernateSearchを実装しようとしています。いつものように、すべてがローカルホストでうまく機能しますが、awsにアップロードすると、次のエラーが発生します。

org.hibernate.search.SearchException: Unable to create index directory: 
/usr/lucene/indexes for index com.myproject.domain.User

私の休止状態の検索構成:

<prop key="hibernate.search.default.directory_provider">filesystem</prop>
<prop key="hibernate.search.default.indexBase">/usr/lucene/indexes</prop>

EC2 + Elastic Beanstalk、LinuxとTomcat7を使用しています。ローカルマシンにWindowsがあります。

EC2に「/usr/ lucene / indexes」という名前のディレクトリを手動で作成する必要がありますか?ありがとう。

4

3 に答える 3

6

アプリにベースディレクトリを作成するための適切な権限がない可能性がありますか?たぶん、ベースディレクトリを作成して適切な権限を与えるのが最善でしょう。AFAIK、HibernateSearchはフルパスを作成しようとします。それが許可されていない場合は、完全なスタックトレースを確認するのに役立ちます。

于 2013-02-07T11:40:16.543 に答える
1

同様の問題がありました。理由は、Tomcatにディレクトリを作成する権限がないためです。Beanstalkでebアクティビティログを見ると、ディレクトリが作成され、Tomcatに権限が付与されます。

  ++ /opt/elasticbeanstalk/bin/get-config container -k tomcat_version
  + TOMCAT_VERSION=8.5
  + '[' 8.5 == 8.5 ']'
  + TOMCAT_VERSION=8
  + TOMCAT_NAME=tomcat8
  + [[ -n true ]]
  + rm -rf /var/log/tomcat8
  + mkdir -p /var/log/tomcat8
  + chown -R tomcat:tomcat /var/log/tomcat8
  + /opt/elasticbeanstalk/bin/log-conf -ntomcat8 '-l/var/log/tomcat8/*'

したがって、ディレクトリの例var / myindexを作成し、権限を付与する必要があります

sudo chown tomcat:tomcat /var/myindex

コードで、persistence.xmlのパスをこの新しいパスに変更します。

ショートカットとして、インデックス行をコメントアウトしようとすると、アプリケーションは引き続きディレクトリを作成しようとし、失敗します。

于 2019-11-30T13:15:38.673 に答える
0

WINDOWSユーザー向け

サーバーが必要なディレクトリを作成するフォルダに書き込む権限を与えます。

私の場合、サーバーがフォルダーを作成したいので、このフォルダーへの書き込みC:\Program Files\Java\jdk1.8.0_191を 許可しました。

PS:それはその書き込みとして悪い解決策かもしれませんJAVA_HOME

于 2019-12-26T13:25:34.480 に答える