2002-06-26 (Wed)

_ Debian WoodyでCocoon2をinstall

またまたCocoon2のinstallです。Cocoon2は依存関係が複雑なので、installを楽しませてくれます。せっかくdocumentが揃ってきたのですから、Cocoon2のInstallingFAQは目を通しましょう。

今回の前提は、Cocoon2は2.0.2を使用し、JDKは1.3.1とします。

JDK1.4を選びたいのですが、Blackdownはまだ1.3.1なので、aptでinstall出来ない1.4はパスします。woodyにcocoon2パッケージがあるにはあるのですが、1年以上も前のバージョンでメンテされていないため、cocoon.warはApacheから自分でDLします。

さて、Tomcatのバージョン選びですが、結論から言うとTomcat 3.3が楽です。エッと思うかもしれませんが、Tomcat 4.0.3では、TomcatとCocoonとの間でXercesやXalanなどの衝突があり、いろいろjarを取り替えねばならず面倒です。Tomcat 4.0.4を選びたいのですが、まだaptに上がってきてないので、パスです。

結局、バージョンは、Blackdow JDK1.3.1、Tomcat 3.3、Cocoon 2.0.2です。JDKとTomcatはapt-get installします。Cocoon2は自分でDLし、webappsにcocoon.warを置きます。

さて、お馴染みのX Serverとの兼ね合いです。この状況でX Serverからの接続拒否エラーを回避するには、いろいろ手があります。お勧めはPJAです。

まず、X Serverを使用する手があります。一見素直そうですが、X上でやればOKという単純な話では終わりません。Tomcat 3.3は、www-dataユーザーで動作します。このユーザーにX Server接続権限がないので、xauthで権限を与えるか、動作させるユーザーを通常のユーザーとするかします。

2番目に、ちょっとacrobaticな方法として、cocoonの中からBatik関連のパッケージを全て(jarファイルやpilelineでの記述)除く手があります。Batikを使わないのであれば、これが根本解決かもしれません。

次に、Xvfbを使用する手があります。

最後に、PJAを使用する手です。これをDebianでやるのは簡単です。unstalbeに、pjaのパッケージ(libpja-java, libpja-java-doc)があるからです。sources.listにunstalbeを加えて、これをaptしましょう。驚きと言うべきかやはりと言うべきか、このパッケージのメンテナはとらねこさんでした。Thanksです。aptすると、pja.jarとpja-tools.jarは/usr/share/javaに入ります。

残るは、Tomcat 3.3がPJAを使用して起動するようにするだけです。/etc/init.d/tomcatが起動scriptなので、これをいじりましょう。72行目のCLASSPATHに、/usr/share/java/pja-tools.jarを追加します。74行目のTOMCAT_OPTに次の設定を追加します。

-Xbootclasspath/a:/usr/share/java/pja.jar -Dawt.toolkit=com.eteks.awt.PJAToolkit -Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment -Djava2d.font.usePlatformFont=false -Djava.awt.fonts=/usr/lib/j2sdk1.3/jre/lib/fonts -Duser.home=/usr/lib/j2sdk1.3/jre

以上で、OKです。

Debian使っててよかったなぁと思う瞬間ですね。いや、Debianじゃなかったら、迷わずJDK1.4入れてたんだから...。まあ深く考えるのはやめましょう(笑)。

追伸:DebianのJavaのライブラリは古いものが多いです。せっかくDebianなのにとても残念です。メンテナを助けるにはどうすればよいのだろうか。まずは己の腕を上げねば。

[]