ホームページ目次前の話次の話

JAVAパズルのCGI、動かなかったのは私のミス

1998年1月28日

日曜日に風邪を引き、昨日は東京の果て、東京湾の方まで行って来て、また また風邪をこじらせて、これではとても仕事のドキュメント作成など辛くてで きないと思い、つい自分のJAVAパズルのページを久々にいじろうとした。

すると、CGIを使っているところ(データベースアクセスとか、自動解法サー ビスなど)で動かないところが存在するのが分かった。しかし、利用する端末 によっては、ちゃんと動作したり、しなかったりという奇妙な現象を呈してし まったのである。

早い話が、www.pro.or.jp に直接アクセスできるマシンでは全部動いたので あるが、プロキシーサーバーを経由した場合には動かなかったのである。

そうなのである、CGIがプロキシーサーバーを越えて使えるようになってい なかったのである。今では、多くの人々がプロキシーサーバーを使っているの で、たぶんかなりの人が影響を受けていたことだと思う。もしかして、自分の 環境が変なのではないかと思い込んだ人々も少なからずいたかもしれないが、 そういう人をもっとドツボに落せなくて残念であった。

さて、私のCGIは、実は自分で組んでいない。このあたりのプログラムを組 もうとしたのは1996年のことで、JAVAも今のようなちゃんとした状態には なっていなかった。CGIのサポートは当然悪く、そのため、どうやったら使え るのか私も色々調べた。すると、CGIAccess Class なるものを作って公開して くれた人がいるのを見つけて、早速使ったのである。

ソースが公開されていなかったので、内部がどうなっていたのかは知る由も ないのだが、とにかくCGIを呼び出すことができたので、もうそれ以上悪い頭 で考えてもどうなるものでもないだろう。使えるものは何でも使ってしまえと いうことで、どんどん使っていった。

最初は、JavaからPerlで書かれた簡単なプログラムの呼び出し程度であった のだが、そのうち、データベースの呼び出しなども含めて、全部 CGIAccess Class を使って作ってしまったのである。一度動いてしまえば、それがどうい う状況で動き、どういう状況で動かないかを考える程の脳は持ち合わせていな いので、いつまでもずるずると CGIAccess Class を使い続けてきた。

今日のデバッグでも、最初は、CGIAccess Class をまだ懲りずに使って、プ ロキシーサーバー経由でCGIを呼び出す方法を模索したのであるが、ソースも ないし、ろくな資料もないので、この線を頑張るのはあきらめた。

Javaの本は、かなり集めた。感想文を何冊も書いたくらいだから、本箱に一 杯あるのである。しかし、こういうことをちゃんと書いてくれる本といったら、 極めて限られるのである。

それで、私の英語力では数ページというか、数十ページで挫折してしまった "JAVA Network Programming"をパラパラとめくっていたら、ちゃんと 解説してありました。英語は全く駄目でも、必要な情報だけは、情報の方から 飛び込んで来てくれるので助かる。

そういうことで、この本の第10章の The URL Connection に書かれていた。 ごく普通に、CGIに対して URL Connection を張って、 Output と Input を やればいいだけであった。詳しく知りたい方は、英語の本でも読んでみては。 もう、この本、確か日本語訳が出ている筈だったな。

原因と対策が分かったので、もう既にJAVAパズルのCGI利用部分が全部修理 済みかというと、まだ一切修理していない。修理のためのテストが済んで、ちゃ んと修理できることが分かって満足してしまって、今こうして、つれづれノー トを書いているのである。

ここまで分かれば、後は単純作業を残すのみである。こうなると、なかなか やる気力が起きないのは困った性格である。


ホームページ目次前の話次の話