Tomcat

java.util.ResourceBundle のキャッシュ

私のマシンで Tomcat を Kaffe で起動すると1分以上かかるのに、Sun JDK で起動すると10数秒。理由を調べると GNU Classpath の java.util.ResourceBundle の読み込みが遅いようだ。ResourceBundle は getBundle() でロードしたバンドルを内部的にキャッシュ…

Struts on Tomcat/Kaffe/GNU Classpath

「Apache Strutsアプリケーション開発入門」(ASIN:4797327790)に添付のサンプルプログラムを Kaffe で動かそうとしても動かない。Tomcat の localhost_log にえらい長いスタックダンプが出ているのでスタックオーバーフローらしい。gnu.xml.pipeline.Validat…

mod_jkメモ

日本語だとなぜか mod_jk2 の情報がほとんどだったりして微妙に不便だったので自分用メモ。ここでは localhost のちょっと古い Vine Linux(Apache 1.3.27 + mod_jk 1.2.13 + Tomcat 5.0.28)でソースからコンパイルしてみる。mod_jk2 は複雑すぎるし作者が…

Tomcat 5 on Kaffe

Tomat 5のクラスタリング関連のコードがなぜかKaffeで動かなくなってしまった。 kaffe-bin: ../../../kaffe/kaffe/kaffevm/soft.c:254: soft_lookupinterfacemethod: Assertion `cls->state >= CSTATE_USABLE' が失敗しました.で落ちる。gdbで調べてみるとor…

Tomcat on SSS-PC

Tomcat 4.1.29と5.0.28がkaffeのCVSバージョン/SSS-PCの上で動いた。極めて快調。結局、最終的な関門はGNU libiconv-1.9.1が"UTF8"というエンコーディング名(のエイリアス)をサポートしていないことであった。encodings.defを適当に書き換えてgperfでaliases…

Tomcat on SSS-PC

SSS-PC関連で某有名I氏が関わっていることを知ってちょっとだけ驚く、D論執筆中の今日この頃。

Tomcat/Kaffe/FreeBSD

FreeBSD 4.8の上のCVSバージョンのKaffeの上のTomcat 5.0.28が動かなかった直接の原因は、プロパティファイルが読めないことであった。なぜ読めないかを追求していくと、結局は"8859_1"というエンコーディングのバイト列を文字列に変換できていないことが原…

Tomcat on SSS-PC

SSS-PCの上でTomcat 4.1.29/Kaffe 1.1.4が動作しているのだが、日本語がうまく取り扱えない……。KaffeのCVSバージョンを移植するしか。移植と言ってもconfigure.acとMakefile.amを書き換えるのが主な仕事だ。libcについてはUNIXと比較的高い互換性を持ってい…

Tomcat 5/Kaffe/FreeBSD

Linuxの上では動いていたのだが、FreeBSDの上で動かそうとするとBootstrapでいきなりNullPointerExceptionが出て落ちる。プロパティが読めていないくさいが……。

Tomcat on Kaffe

正規表現が誤動作していたのは、GNU Classpathのバグであった。java.util.regex.Matcher#matches()は文字列全体にマッチングするか否かを判定するメソッドであるが、Classpathでは単にfind(0)を呼ぶだけなので部分文字列にもマッチングしてしまう。従って、j…

Tomcat 5 on Kaffe

クラスタリングにおけるセッション情報の動的複製がうまく動作しないのは、org.apache.catalina.cluster.tcp.ReplicationValve#invoke()の中で正規表現を用いてフィルタリングしている部分がKaffeで誤動作していることが直接の原因のようだ。フィルタリング…

Tomcat 5 on Kaffe

Tomcat 5.0系列の最新版Tomcat-5.0.28はKaffe-1.1.4では正しく動かないが、KaffeをCVSから引っ張ってくれば動く。しかし、私にとっての問題はクラスタリング機能が正しく動作しないという点だ。起動時に他のマシンからセッション情報を全部取得する機能は動…

DistributedManager

Tomcat 4に付属のDistributedManagerは使えないことが結局判明した。セッションがcreateされた時にしか複製が行われないように見える。本来は少なくともsetAttribute()された時にも複製しなければならないはず。そのためには独自のSessionクラスが必要なはず…

DistributedManager

Tomcatのクラスタ内でセッション情報をコピーするDistributedManagerを真面目に使っている人はいるのか?検索しても全然出てこない。