2003-02-06 (Thu)

BrainsMemo インストール

BrainsMemo を Solaris9 + Tomcat4.1.18 + jdk141 で稼動することに成功したのでメモ。
  1. jakarta-tomcat-4.1.18-LE-jdk14.tar.gz をインストール
  2. 付属の readme.sjis に従って BrainsMemo をインストール
  3. readme.sjis で説明されている文字エンコーディングの指定方法は Tomcat3 用なので「文字コードの指定 - Tomcat4.0.3 の場合」あたりを参考に指定。今回は Windows-31J を選択。
  4. 同梱の XML 関係ライブラリ memo/WEB-INF/lib/xerces-1.2.3.jar と memo/WEB-INF/xalan-2.0.0.jar を削除。このへんの機能は jdk141 に用意されているもの使うようにする。
  5. ページ情報の保存、読み出しするコードが JVM のデフォルトエンコーディングに従うようになっているので、Windows-31J を使うように修正(後述)
  6. 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
  7. FOP を PDF へレンダリングするコードが JAXP になっていないので修正(後述)
  8. 以上で Tomcat にアクセスすると使えるようになるはず。ダメなときは catalina.log などとにらめっこ。
ページ情報を保存する文字エンコーディングは、WEB-INF/conf/application.config あたりで設定できるようになっているとよかったのだけど、そうはなっていないので手抜き対応。本来は brainsMemo.core.service.impl.PageStoreImpl あたりで対応すべき。net.tender_brains.global.util.io.IOUtil を修正。
*** 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);
本日のツッコミ(全3件) [ツッコミを入れる]

# oku [まったくどうでもいいことですが avalon-framwork-4.1.3.jar は、 avalon-framew..]

# ko [修正しました。ありがとうございます(^^)]

# cialis [Hello! <a href="http://oieypxa.com/oryrvsr/1.html">cialis<..]