2003-02-06 (Thu)
▲ BrainsMemo インストール
BrainsMemo を Solaris9 + Tomcat4.1.18 + jdk141 で稼動することに成功したのでメモ。- jakarta-tomcat-4.1.18-LE-jdk14.tar.gz をインストール
- 付属の readme.sjis に従って BrainsMemo をインストール
- readme.sjis で説明されている文字エンコーディングの指定方法は Tomcat3 用なので「文字コードの指定 - Tomcat4.0.3 の場合」あたりを参考に指定。今回は Windows-31J を選択。
- 同梱の XML 関係ライブラリ memo/WEB-INF/lib/xerces-1.2.3.jar と memo/WEB-INF/xalan-2.0.0.jar を削除。このへんの機能は jdk141 に用意されているもの使うようにする。
- ページ情報の保存、読み出しするコードが JVM のデフォルトエンコーディングに従うようになっているので、Windows-31J を使うように修正(後述)
- FOP 関係のライブラリを最新に更新
- avalon-framework-4.0.jar → avalon-framework-4.1.3.jar
- fop-0.20.3.jar → fop-0.20.4.jar
- logkit-1.0.1 → logkit-1.1.jar
- FOP を PDF へレンダリングするコードが JAXP になっていないので修正(後述)
- 以上で Tomcat にアクセスすると使えるようになるはず。ダメなときは catalina.log などとにらめっこ。
*** IOUtil.java.orig Fri Aug 30 22:07:14 2002 --- IOUtil.java Thu Feb 6 10:50:20 2003 *************** *** 148,155 **** PrintWriter pw = null; try { ! pw = new PrintWriter( ! new FileOutputStream(file.getAbsolutePath(), append)); pw.print(content); } finally { --- 148,154 ---- PrintWriter pw = null; try { ! pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, append), "Windows-31J"))); pw.print(content); } finally { *************** *** 197,203 **** String result = null; try { ! reader = new BufferedReader(new InputStreamReader(in)); writer = new StringWriter(); int c; --- 196,202 ---- String result = null; try { ! reader = new BufferedReader(new InputStreamReader(in, "Windows-31J")); writer = new StringWriter(); int c;
▲ FOP を PDF へレンダリングするコードは、FOP のヘルパメソッドを使って brainsMemo.util.FopUtil 以下のように修正。
$ diff -c FopUtil.java.orig FopUtil.java *** FopUtil.java.orig Fri Aug 30 22:07:14 2002 --- FopUtil.java Wed Feb 5 15:42:47 2003 *************** *** 61,67 **** XMLReader parser = null; try { parser = XMLReaderFactory.createXMLReader( ! "org.apache.xerces.parsers.SAXParser"); } catch (SAXException e) { throw new FOPException( "Could not create SAX parser.", e); --- 61,67 ---- XMLReader parser = null; try { parser = XMLReaderFactory.createXMLReader( ! Driver.getParserClassName()); } catch (SAXException e) { throw new FOPException( "Could not create SAX parser.", e);
# oku [まったくどうでもいいことですが avalon-framwork-4.1.3.jar は、 avalon-framew..]
# ko [修正しました。ありがとうございます(^^)]
# cialis [Hello! <a href="http://oieypxa.com/oryrvsr/1.html">cialis<..]