FessではSolrのコンテキストに対してBASIC認証をかけているのだけど、Solr4ではSolrJがHttpClient4がデフォルトになり、HttpClient3のときのようにフラグだけでPreemptive Authの設定できない感じだ。SolrJ自体がそれに対応していれば良いのだけど、そうではないっぽい。まぁ、SolrJはHttpClient4を利用しているのでHttpRequestInterceptorでBASIC認証の情報をaddHeaderしてあげれば良いみたい。SolrLibのところにコードはおいてあります。別にSolrJじゃなくても使える気はするけど。
カテゴリー: Apache
codelibsのsolrlib
Fessに入っていたSolrサーバーにアクセスするためのコードを抜き出して、solrlibとしてまとめました。FessではアクセスするSolrサーバーたちを複数まとめて扱えるようにしたり、リトライできるようにしたり、生死監視したりとかしているのだけど、その辺の機能です。まぁ、Fessから抜き出すことでFessと同じようなことがFess以外のJavaプロジェクトでしやすくなるかと思います。まぁ、solrjのSolrServerのインスタンスをラップしている感じですが、Solrを真面目に使うなら必要そうな機能な気はします。そんな感じで、codelibsで作っていきます。
TomcatのPID
initスクリプトとかでdaemon –pidfileとかで渡せばプロセスIDのファイルを作れると思うのだけど、Tomcatの場合、スクリプト経由でJavaなので、いまいちうまくいかない感じがする。何か、良い方法はないかな、っと思ったら、catalina.shに普通にCATALINA_PIDっていう環境変数があった…。つまり、startup.shを実行するときとかに
export CATALINA_PID=/var/run/tomcat.pid
とかしておけばプロセスIDを書きこんでおいてくれるみたい。まぁ、もちろんそのファイルへはcatalina.shを実行したユーザーが書き込める必要はあるけど。というわけで、がんばって作る必要はなかった。