何で実行時に Exception が出るのか見てみると、原因は Tomcat のルートにある temp ディレクトリを削除していたためみたい。Lucene が System.getProperty(“org.apache.lucene.lockdir”, System.getProperty(“java.io.tmpdir”)) を参照するため、ディレクトリがないとNPEが発生。というわけで、削除しないように変更したら、無事に動いた。
カテゴリー: Apache
ビルド
最新のをチェックアウトしてビルドしたら、Exceptionで起動できん。はて、どうしたものか。
Caused by: java.lang.Exception: Cannot RECREATE Portlet Registry indexes in /home/shinsuke/ProgramFiles/Tomcat/apache-tomcat-5.5.16/webapps/marevol/WEB-INF/search_index at org.apache.jetspeed.search.lucene.SearchEngineImpl.<init>(SearchEngineImpl.java:102) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:78) ... 82 more
リソースバンドル
う~ん?Ate が入れたこの修正はありなのか?デフォルトのリソースバンドルにこれをすると、portlet.xml からタイトルとかを取ってこなくなると思うのだが。というわけで、今まで、デフォルトのプロパティには javax.portlet.title とかを入れないようにしていたのだけど。これはあとで対応する必要がありそうだな・・・。