ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

WinXPで、「作業フォルダ」にハマり、ログが出ない(Apacheのlog4jの話)

2005-04-01 15:04:07 | JavaとWeb
 Apacheで、ログを出すために、log4jというライブラリがあります。

 で、それをJavaで使う方法については、こちらにまとめておきました。

 今回の話は、それを使って、ログを出そうとしたときの話。

(今回、log4j.jarをTomcatのcommon.libにおいています)




 コンソールには、ログが出るんです。
 でも、ファイルは、

  「どこ?」
  「どこ??」
  「どこーー???」

 って感じで、どこにも、書き出してない。
 Tomcatのlogsにもない。
 logsに書かれている、ほかのファイルをみても、この内容はない。
 うーん、なにか、書き方が悪いのかと思い、ちょっと、log4j.propertiesをいじって、Tomcat再起動しようとしたら。。。うん??
メニューのApache Tomcat 4.0の下、(Start Tomcatなんかと同じところ)にログがある。
 なーぜー??

 わかりました。
 ウィリアムのいたずらです。
 (私とその仲間?は、Windows独特の、おかしな現象(いたずら)をこうよんでいます。
  ちなみに、ウィリアムの略称は、ビルです。つまり、ビルゲイツのいたずらといいたい)




 Startメニューを右クリックしてみましょう。

 プロパティダイアログが出てきます。

 そこに、作業ファイルっていうのがあります。
 Start Tomcatの作業ファイルは、

自分のフォルダ\スタート メニュー\プログラム\Apache Tomcat 4.0

  になっています。つまり、スタートメニューの中。
 ログが起動すると、そこの下に、ログファイルを作ろうとするから。

 作業フォルダを違う場所に変えれば、そこの下にできる




 で、さらにおどろいたことに、Tomcatは、javaの上で動いているようだ。
 プロパティダイアログのリンク先を見て知った。

 さらに驚いたことに、私の場合、1.3のjavaが起動するようになっていた。
 道理で、MySQLで、クラスパスに1.4.2のjarのありかを追加しても、Connector/J 3.1(javaなどのプログラムからMySQLのDBアクセスのとき必要)だと、java.lang.NoClassDefFoundError: java/sql/Savepointが出るわけだ。
1.3で動いているんだもん!
(Connector/J 3.1は、1.4.0以上でないと動かない)





うーん、ウィリアムのいたずらだあ! 

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Webサービスのプログラム、JAVAでつくってみたんだけど。。遅い気がするのは、気のせい?

2005-04-01 12:08:00 | JavaとWeb
 昨日のブログにあるように、Javaでプログラムつくって、apache-SOAPでデプロイして、動かしてみたんですよ。
 JavaでHello World SOAP編と同じプログラムを。
 ローカルホストなんだよ、それなのにそれなのに。。。

 遅くない??

 寝ぼけてるの??

 反応遅すぎ!

 検索とかなら、いいけど、このスピードだと、入力では、ちょっとまずいんじゃないかな。




 こんだけ、面倒なことをやって、おそいんなら、
むしろ、HTTPで、クライアントから引数をシリアライズして送って、サーバーはサーブレットを使って、引数をデシリアライズ、処理を行い、帰り値をシリアライズしてクライアントに返すほうが、早いし、簡単なんじゃないかな?

 つまり、
(1)ウィリアムのいたずらが、ここに示しているように、POST型で、サーバープログラムを呼び出す
(2)そのとき、必要な引数はVectorに入れておき、シリアライズして、送信する(上記のサイトの例だと、msgbufに設定して送る)
(3)サーバー側では、受け取った値をデシリアライズして、Vectorに戻し、それをもとに実行、帰り値を、シリアライズして、それを書き出す
(4)クライアントはその値を受けて、デシリアライズして、引数に戻す

 ほうが、簡単で早い気がする(もちろん、返り値などは、implements Serializable してね!とかあるけど、そんなの、SOAPのやり方から比べれば。。。たいしたことじゃないよね)。




 ただ、webサービスは、いっぱい事務所があるような会社で、ちょっと待ってもかまわないような、在庫検索なんかにはいいかも。すべての事務所のシステムを同じようなシステムにして、webサービスとしておけば、事務所が増えても検索先を追加するだけでいいとか。。

 あとは、知識検索とか(これがRSSの方向ですな)

 あとは、分散して開発しているような場合、CVS管理だけだと、自動テストとかまでは、やんないので、
・更新したモジュールをアップして、webサービスとして提供しておくと、
・クライアント側で更新されたかどうか確認して、
・更新されてたら、そのソフトをダウンロードすべきかどうかwebサービスで判断して
  →利用する他のソフトのバージョン(たとえば、Linuxのカーネル,Glibcのバージョンとか)
   によっては、バージョンアップしないほうがいいこともある
・ダウンロードしたほうがよければ、ダウンロード、クライアント側で自動テスト
するなんていうシステムも、「あり」かなと思うけど。。。
 webサービスじゃなくっても、できるね(自動テストの部分は、クライアントの仕事だからwebサービスと関係ないし)

 このような、構成管理がらみの話は、ブログと関係させると面白い。
 「コピーされるほど儲かるシステム」にも関係あるので、今度別にかきます。




 とはいえ、webサービスって、この遅さじゃあ、はやるのかなあ?と思ってしまう。
 Axisだと、もっと、はやい。。。のかなあ??

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする