java
JavaRMIの動作を検証する過程でCORBAのCDR(Common Data Representation)の詳細仕様が知りたくて調べてたんだけどわかんねぇ!! 本家みても詳細仕様みあたらないのはなぜ? HTTPのRFCみたいなものが読みたいのだけどもどれがそれに当たるんだろRMIの直列化…
一般的にクラスのバージョン(構造)が異なる場合デシリアライズできませんが、以下の様なことをしておくとシリアライズ、デシリアライズが可能です。 private static final long serialVersionUIDを定義 writeObject/readObjectを実装する。 serialVersionU…
Maven1でProxyを設定したい時は ビルドディレクトリに「build.properties」っていうファイルをつくって maven.proxy.host=プロクシホスト名 maven.proxy.port=プロクシポート番号 を書く。 Antに似てるね。
ちょっと学んだので整理。 まずJavaにはランダムを提供するクラスとして java.util.Random java.security.SecureRandom の2つがあってRandomクラスは以下のような強度しか持っていない。 Random クラスのインスタンスは、一連の擬似乱数を生成します。クラス…
ディレクトリトラバーサル攻撃を検知する場合「../」を検知するとかではダメで以下のIPAのサイトにあるようにちゃんとしたチェックが必要。 http://www.ipa.go.jp/security/awareness/vendor/programming/b07_07.html必要なのは以下の精査。 パス名を正規化…
以前先輩に教えてもらったものが今日とても役立ったのでメモ System.out.println(.class.getProtectionDomain().getCodeSource().getLocation());
SJISの使えるIDEならNetBeansということでNetBeans6.1でソースを書いているのですが、今日不思議なところでWaveDash問題が起こりました。 プロジェクトのプロパティでソースのエンコーディングを指定しておくと大半の文字はSJISでちゃんと入力できるのですが…
昔作ったサービスを改修するのでリファクタリングなぞした。 改修前のリファクタリングって楽しいよね。 ソース全体の見直しになるしいいアップになる感じがする。
勉強をかねてソケットサーバー&クライアントをjavaとvb2008とCPPの3つの言語で書いてみたんだけどソケットめんどくさいな〜 課題としてはあんま向いてなかったな、、 やっぱjavaが一番楽だった。そしてCPPがいちばんめんどいね でもvb2008が一番やりずらか…
javaで何とかできないか考えていたんだけども無理のようだ。 awtとかもアクティブのときしかイベント拾えないし、擬似的にアクティブにしたりするのも無理だ。取得したいキーが数個の場合ホットキーを使えばいいけど今回は対象が ほぼ全部のキーになるからC+…
JNIでJavaから簡単にネイティブを呼べるのは知っていたんですが、ネイティブからJavaの呼び出しもこんなに簡単なんですね。 まるでリフレクションのようにCからJavaを呼び出せるなんて。 メソッド呼び出し、オブジェクトの生成はもちろんのこと、スーパーク…
これはやばい。日本はじまりすぎ http://nekobean.net/
セッションを生成しまくるとこんなエラーが出る。 IllegalStateExceptionは、不正または不適切なときにメソッドが呼び出されたことを示すエクセプションなのでなんか違う気がするがそういうもんらしい。 セッションはちゃんと消しましょうというお話でした。…
GoogleカレンダーAPIを使ってみました。 かなり情報が少なくて参った。すんごく簡単なサンプルはあるんだけどその先がない。ちょこちょこつまづきながらもとりあえず一連の操作はできるようになった♪ これで明日ぐらいにはスケジュールボードとの同期が出来…
なぜかHttpURLConnectionクラスはプロクシを使う時システムプロパティーに指定するか引数にかかねばなりません。これが良く忘れがち。 あと気を付けておかないといけないのがHTTPで使われるProxyとHTTPSで使われるProxyの指定の仕方が異なります。 HTTPは 「…
Continuumを使って継続ビルドしているのだけれどビルド報告のメール(画面表示も)で日本語が化ける。 「continuum-1.0.3\apps\continuum\build-output-directory」に出ているログは正しく出てるのだけどメールにする際に化けているようだ。 んじゃまあ文字…
そろそろバイトコードを読むお年頃になったので年初めにBCELを使って少し読んでみました。 BECLってのはジャカルタのバイトコード操作ライブラリ。こんなものも揃っているなんて便利な世の中です。 DOMAIN ERRORまずここから一式をDLしてサンプルを真似しな…
ソースコードの行数カウントのツールを探してたら便利なのみつけた。 コロ助 - ステップ数カウンタの詳細情報 : Vector ソフトを探す!コロ助のネーミングの意味が良くわからないが色々な言語に対応していて便利。*1 対応している言語は以下のようにかなり多…
プロジェクトを消したり閉じたりいろいろやっているとたまにTOMCATプラグインが無反応になることが有ります。 こんな時はTOMCATプラグインの「JVMの設定」のクラスパスのところの設定を見てみてください。 ここに古いPJのJARなどへの参照が入っているとプラ…
Java6でSeasarを動かそうとすると怒られるのでJava5でやりましょう。もしくはJava5のrt.jarをクラスパスに通して6.0ラインタイムより上に持ってきましょう。
ChuraでS2jdbc使う時は「convention.dicon」に以下の記載が無いと落ちる。 落ちた時のスタックはこんな感じ。 org.seasar.framework.container.IllegalAutoBindingPropertyRuntimeException: [ESSR0080]クラス(org.seasar.extension.jdbc.meta.ColumnMetaFac…
シーサーカンファレンスでHotDeployの仕組みをひがさんがちらっと解説してたのでメモ。HotDeployはリクエスト毎にクラスローダーを用意している。なのでリクエスト毎に最新のソースコードの変更が反映される。 また、クラスローダーが異なる為ステートフルな…
明日はシーサーカンファレンスだ! 雨だけど盛り上がるぜ!
Javaの正規表現はエスケープする時にちょっと特殊なのでメモ。 正規表現の特殊文字をエスケープするには「¥」を使います。 たとえば「penta.」を「penta!!」に置換しようとた場合viなら「s/\./!!/」と書きます。が、Javaで同じように "penta.".replaceAll("…
さっそく申込。事前にセッション選ばないタイプだから自由度が効いていい http://event.seasarfoundation.org/sc2007autumn/
後輩が嵌っていたので書いてみる。build.xmlの中ではリテラルとして「"」がエスケープできません。 なので以下のようなbuild.xmlはエラーになります。 ↓実行すると >ant test Buildfile: build.xml BUILD FAILED build.xml:14: Element type "echo" must be …
きしださんのインターフェースの疑問がよくわからなくて色々悩みました。最初読んだときに「Javaの全てのクラスの親はObjectクラスだから」じゃないの?とあさはかな事思ってたんですがやっと本質に気づきました。(汗 Runnable a = new Thread(); a.toStrin…
新人にJAVAの基礎講座をする準備が思った以上に重い〜 JAVAの基礎について2時間の講義*4回の予定なんだけどこれが結構でかいね。どんどん話さなきゃいけないことが多くなって大変だ〜 アーキテクトの卵用の研修なんで表面的になぞるのではなくちゃんと内…