何度も頓挫しそうになったcentosセッティング

tomcatだが、なぜか元サイトからダウンロードできなかった。
vm上でやったときは何も問題なかったはずなのだが……。
そんで以前紹介したtomcatの設定を説明しているサイトのwgetからダウンロードしようとしたがこれまた失敗。
これはバージョンが変わった所為だった。6.0.18となっているところを6.0.24にするとそのバージョンがダウンロードできた。

ちなみにaliasの設定を保存しておく方法を備忘しておく
ホームディレクトリにある(なければ作る).bashrcファイルの中に実行するaliasを記述しておくと起動時に実行してくれる。

centosにおけるtomcatサーブレット配置場所は/usr/local/tomcat/webapps/servlets-examples/WEB-INF/classesである。
JSPは/usr/local/tomcat/webapps/jsp-examples/WEB-INF/classesに配置する。

テストサーブレットコンパイルで失敗。servlet.jarファイルをパス指定するのを忘れていた。
tomcatのメインディレクトリからファイルを探すがservlet-api.jarとなっていた。/etc/profileファイルにパスを編集sourceをかけて再度コンパイル実行。成功した。

後はwindows版と同じようにservletタグをxmlで指定してやればいい。
なぜかtomcatのサンプルサーブレットは表示できなかったが、一応はこれで本格的に…。
問題はデータベースエンジンなのだが、以前はMYSQLを使っていた。WINDOWSではHSQLDBを。
感触としてはHSQLDBの方が使いやすいのだが、Linux上ではどうなのだろう…。

とにかくひと段落した。今後の課題は、
centos上でデータベース操作(JDBC)の確認
tomcatサーバのサーブレット動作をローカルエリアのPCで確認する方法
・公開の準備

やっとcentosインストール開始

今回はvmではなく実機にインストール。
サブで使っていたマシン、PenDCE5200 ON P5KPL-CMが逝ってしまわれた…。
機能リムーバブルケースを取り付けて新品のHDDにインストールしようとしたら、centosSATAを認識しない様子だった。
それでパーツを組み替えて試しているうちに…、電源が入らなくなった。ナムー
しかし自分の構成か組み方が悪いのか、自作したものってぜんぜん安定しない。
そしてずっと御蔵入りしていたPen4を引っ張りだした。こちらはPen4(3.0GHz) ON P5V800-MX どちらもインテル ON アスースだった。P5KPL-CMはまったく安定していなかったがP5V800-MXはもう5年になるがすごく安定している。P5KPL-CMのほうはありあわせの電源を使っていたが、Pen4は結構いいやつ使ってたかもしれない。お蔵入りさせるなら電源変えとけばよかった。
そうこうしているうちにインストール作業が終わった。
さて、次はシステムの導入だ……。

kvmスイッチ買ってきた

以前はデュアルディスプレイでPCをつかっていたけど、もらったパーツをかき集めてサブ(CPUはメインより高性能)PCを組むことができた。これを飾っておくわけにも行かず、片割れのディスプレイを使って二つのディスプレイ&二つのマウス&二つのキーボードとして使い始めたけど、さすがに使いづらさをごまかすこともできず、今回kvmスイッチを購入することにした。

仕事場で上司がこれを使っているのを見て便利そうだとは思っていた。ちなみに上司はデュアルディスプレイしない派である。

そもそもなぜ二台必要なのかというと、開発PCと実験PCとして用意している。実験PCに関してはシステムの実装と実行だけなので、必要なときに操作画面とコントロールが得られればそれ以上は望まないのだ。このためにもうひとつディスプレイというのも、場所もコストも掛かって馬鹿らしいので今回kvmスイッチの購入に踏み切った。踏み切ったというと高い買い物のように聞こえるが、これが意外と高く、1万円をくだらない。その中でとびきり安いものを買ってきた。1万円が並ぶ中で2千円くらいのものにした。別の意味でよく踏み切ったと思う。だがこれが想像していた性能と遜色なく、今は非常にいい気分である。エレコムの製品は、昔ゲームコントローラを2千円ほどで購入して使ったとき、800円ほどで買った安物のコントローラと比較して感度が悪すぎた。その印象があって、安くてもあまり手を出そうとは思っていなかったがこれはアタリだった。気分屋なのでしばらくしたら不満も出るかも知れないが…。

※注意する点としてはキーボードとマウスの接続にPS/2を使っているのでPS/2がついていないPCやマウス、キーボードの利用者にはお勧めできない。
自分もUSBマウスを利用しており、メインPCにもマウスのPS/2がなかった。だがキーボードの接続だけで問題なく動くし、マウスは共有できないが、大して邪魔にならないので二つ使っている。基本的にPCを自分でかまう人用だと思っていてほしい。



文字化けも直ってあとはHTMLから得たデータをSQLで送ってやるだけと思ってたができない。
例外処理に巻き込まれる。例外処理をはずすとエラー発生。SQLの実行クラスでは起きなかったのに、tomcatプロジェクトにしたとたんに例外処理なしで実行できなくなってしまった。ネイティブなら例外処理入れなくても怒られなさそうだが

原因:WEB-INF/libファイルにJDBCドライバが入っていなかった。

アプリケーションプロジェクトはパスを通せばドライバが使えるけど、tomcatプロジェクトではちゃんとlibフォルダ内に入れないといけない

java post 文字化け

htmlの入力フォームからmethod="post"で送られるテキストが化ける問題が発生してから数時間。
やっとなおったっつの…^^;;;;
エンコードする場所変えたり、まともに動かないであろうテキストのサンプルを試してみたり、何度も遠回りしてやっと動きが分かった…

setCharacterEncoding("Windows-31J");
↑パラメータ受け取る前にこれをするだけ

こんなのに何時間かけてんだ。まぁ時間かけてできるだけ有難いのか?HTMLじゃあるまいし動いてるサーブレットのサンプルなんてないもんなー。


あとサーブレットと連動するhtmlの記述法を良く忘れるのでメモしておく。
テキストボックスなどをタグで指定したら、その中にname="名前"という風に名前を指定しておく
そして、サーブレット側で受け取るオブジェクトの名前を指定することで、中のデータを得ることができる。
HTMLを書く度忘れてて、これを知るたび、あー納得、なんて関心していた。
たったこれだけのことだけど、いままでSQLはあってもHTMLは続けて記述する機会がなくて忘れてしまっていた。

さらに追記
HTMLタグに複数あるボタンから、押されたボタンを判定する手段があったので記載する。
要はボタンの名前を指定して、それぞれの中からパラメータがnullでないものを指定すればいいらしい。
パラメータの中には当然ボタンのvalueが入っているのだろう。それの有無で判定すればよい。

HSQLDBで作成中

java3D全然進んでない。amazonで中古で買ったリファレンスの日本語訳も帰りが遅くて不在届けもらって3日経っても受け取れてない。
帰宅が22時でどうしろってんだ。会社に届けてもらえばいいね!
とにかく今は3DそっちのけでHSQLDBやってる。意外なほど問題なくアクセスできるので驚き。MYSQLはバージョン毎にいろいろ違って面倒だったのに……。やはり簡易データベースエンジンだからだろうか…。学習用としては最適だと思う。

ところでeclipseのimport文サポートに感けてimport文を最初に書かない癖がついてしまったが、これがあだとなる状況が存在した。
java.sqlのStatementクラスを使おうとしてエラー文が出た後、いつものようにimportサポート機能でimportしたのだが、そのあと立て続けに原因不明なエラーが出た。
よく見るとimportされたのはjava.sql.Statement…、ではなくjava.beansにある同名のクラスだった。こんなことってあるのか。本来自分で記述しなけりゃならんのだから特に不便とは思わないが、面白いなぁと。