Tomcatに標準でついているmanagerを使うと、HTTPでアクセスするだけでWeb
アプリケーションをデプロイ出来るが、その挙動で気がついたことを。
http://localhost:8080/manager/deploy?path=/foo&war=file:C:/bar&update=true
ここで「update=true」がついていると、指定したPATHのアプリケーションがすでに
存在する場合にはDELETE,INSERTの動作をするが、このDELETEがちゃんと出
来ないことがある。
遭遇したケースは、/WEB-INF/lib/に置かれたJARをTomcatが掴んだままにな
っていて、ファイルが消せなかった。
対策として、Tomcatを落としてから該当のJARを消す。ベタベタな対応。
自分でアンデプロイしようとしてるアプリ内のファイルはちゃんと解放しようよ、Tomcat。
最近触れる機会があったので、試したログ的なものをまとめていこうと思いました。
Wikiの方に書いていきますので、詳しくはそちらをどうぞ。
立てました。
整形したかったり、大きくなりそうなドキュメントをまとめたりしていこうかと。
コードを書き始めるときに、いつも「世の中のデファクトスタンダード的なモノ」が気に
なってしまう。
HTMLでいくか、XHTMLでいくか、それぞれStrictでいくか、Tranditionalなのか。
JavaScriptを別ファイルにするときには、どんなファイル名にするのか、同じように
CSSファイルはどうなのか、とか。
新しく何かを始めようとすると、それを考えたり、調べたりするのに時間を結構とられ
てたりする。
続きを読む…
コンストラクタはインスタンスが作られるときに1度だけ実行されるけど、こいつはクラス
がロードされるときに1度だけ実行される。
クラスのコンストラクタってイメージか。
JDBCドライバ使うときに
Class.forName("foo.bar.Baz");
conn = DriverManager.getConnection(theURL, theUser, thePassword);
なんてやって、DriverManagerはどうやってfoo.bar.Bazを使うって認識するんだろうと
不思議だったんだが、JDBCドライバは static {}で自分自身をDriverManagerに登録して
るんだそうな。
昨日「あれ?」的なコメントを書いてしまったが、当然のごとくというか、やはりというか、
わたしの勘違いでした。ジャストさんごめんなさい。
細かいことは省きますが、わたしの警告メッセージの解釈間違いで・・・。
続きを読む…
最近はやっている感じのPC内検索で、世間一般にはGoogleデスクトップがスタンダードな
感じであるが、(わりと)自他共に認めるJustsystem派としては、(わりと)当然のごとくコイツ
を購入した。もちろんJustMyShopで。
続きを読む…
いろいろいじってみる。
かけている時間の割には成果があがらず凹む。
あ、でもエントリのタイトルの横にカテゴリはつけた。
をこうしてみた。どうだろう。
System.out.println("foo");
続きを読む…
SERIAL型のカラムを定義すると、値を生成するシーケンスも同時に作られるのだが、このテーブルにデータをcopyでファイルから読み込むときにはシーケンスの値を更新するのを忘れないようにしないといけない。
idというカラムがSERIAL型と仮定して、具体的には、こう。
DB=> \copy the_table to 'the_table.csv' using delimiters ','
DB=> SELECT setval('the_table_id_seq', (SELECT max(id) FROM the_table));
忘れると、INSERTするときに、ユニーク制約で怒られたり、数字が飛んじゃったりすることになる。
コピーしてからINSERTされるまでに間が開くと、ハマったりするかも。