java

CORBAの詳細仕様が知りたい

JavaRMIの動作を検証する過程でCORBAのCDR(Common Data Representation)の詳細仕様が知りたくて調べてたんだけどわかんねぇ!! 本家みても詳細仕様みあたらないのはなぜ? HTTPのRFCみたいなものが読みたいのだけどもどれがそれに当たるんだろRMIの直列化…

異なるバージョン間でもシリアライズ・デシリアライズする

一般的にクラスのバージョン(構造)が異なる場合デシリアライズできませんが、以下の様なことをしておくとシリアライズ、デシリアライズが可能です。 private static final long serialVersionUIDを定義 writeObject/readObjectを実装する。 serialVersionU…

Maven1でプロキシの設定

Maven1でProxyを設定したい時は ビルドディレクトリに「build.properties」っていうファイルをつくって maven.proxy.host=プロクシホスト名 maven.proxy.port=プロクシポート番号 を書く。 Antに似てるね。

Java で、ランダムな文字列を生成する方法

ちょっと学んだので整理。 まずJavaにはランダムを提供するクラスとして java.util.Random java.security.SecureRandom の2つがあってRandomクラスは以下のような強度しか持っていない。 Random クラスのインスタンスは、一連の擬似乱数を生成します。クラス…

ディレクトリトラバーサル攻撃への対処

ディレクトリトラバーサル攻撃を検知する場合「../」を検知するとかではダメで以下のIPAのサイトにあるようにちゃんとしたチェックが必要。 http://www.ipa.go.jp/security/awareness/vendor/programming/b07_07.html必要なのは以下の精査。 パス名を正規化…

classがどのjarファイルから読み込まれているかを知るのに便利なデバッグ文

以前先輩に教えてもらったものが今日とても役立ったのでメモ System.out.println(.class.getProtectionDomain().getCodeSource().getLocation());

NetBeamsでWaveDashが文字化けるときはエンコードをWindows-31jにする

SJISの使えるIDEならNetBeansということでNetBeans6.1でソースを書いているのですが、今日不思議なところでWaveDash問題が起こりました。 プロジェクトのプロパティでソースのエンコーディングを指定しておくと大半の文字はSJISでちゃんと入力できるのですが…

リファクタリング

昔作ったサービスを改修するのでリファクタリングなぞした。 改修前のリファクタリングって楽しいよね。 ソース全体の見直しになるしいいアップになる感じがする。

ソケット難しいな

勉強をかねてソケットサーバー&クライアントをjavaとvb2008とCPPの3つの言語で書いてみたんだけどソケットめんどくさいな〜 課題としてはあんま向いてなかったな、、 やっぱjavaが一番楽だった。そしてCPPがいちばんめんどいね でもvb2008が一番やりずらか…

非アクティブな時のキーイベントを拾う

javaで何とかできないか考えていたんだけども無理のようだ。 awtとかもアクティブのときしかイベント拾えないし、擬似的にアクティブにしたりするのも無理だ。取得したいキーが数個の場合ホットキーを使えばいいけど今回は対象が ほぼ全部のキーになるからC+…

JNIってすげぇ!!

JNIでJavaから簡単にネイティブを呼べるのは知っていたんですが、ネイティブからJavaの呼び出しもこんなに簡単なんですね。 まるでリフレクションのようにCからJavaを呼び出せるなんて。 メソッド呼び出し、オブジェクトの生成はもちろんのこと、スーパーク…

ネコビーンファンサイトかわいい!!

これはやばい。日本はじまりすぎ http://nekobean.net/

Session.invalidate

セッションを生成しまくるとこんなエラーが出る。 IllegalStateExceptionは、不正または不適切なときにメソッドが呼び出されたことを示すエクセプションなのでなんか違う気がするがそういうもんらしい。 セッションはちゃんと消しましょうというお話でした。…

GoogleCalenderDataAPIの使い方。その1

GoogleカレンダーAPIを使ってみました。 かなり情報が少なくて参った。すんごく簡単なサンプルはあるんだけどその先がない。ちょこちょこつまづきながらもとりあえず一連の操作はできるようになった♪ これで明日ぐらいにはスケジュールボードとの同期が出来…

HttpURLConnection使用時のHTTPSProxy

なぜかHttpURLConnectionクラスはプロクシを使う時システムプロパティーに指定するか引数にかかねばなりません。これが良く忘れがち。 あと気を付けておかないといけないのがHTTPで使われるProxyとHTTPSで使われるProxyの指定の仕方が異なります。 HTTPは 「…

Continuumの文字化け

Continuumを使って継続ビルドしているのだけれどビルド報告のメール(画面表示も)で日本語が化ける。 「continuum-1.0.3\apps\continuum\build-output-directory」に出ているログは正しく出てるのだけどメールにする際に化けているようだ。 んじゃまあ文字…

bcelを使ってバイトコードを読む

そろそろバイトコードを読むお年頃になったので年初めにBCELを使って少し読んでみました。 BECLってのはジャカルタのバイトコード操作ライブラリ。こんなものも揃っているなんて便利な世の中です。 DOMAIN ERRORまずここから一式をDLしてサンプルを真似しな…

ソースコードの行数カウントツール

ソースコードの行数カウントのツールを探してたら便利なのみつけた。 コロ助 - ステップ数カウンタの詳細情報 : Vector ソフトを探す!コロ助のネーミングの意味が良くわからないが色々な言語に対応していて便利。*1 対応している言語は以下のようにかなり多…

TOMCATプラグインが無反応になった時の対応

プロジェクトを消したり閉じたりいろいろやっているとたまにTOMCATプラグインが無反応になることが有ります。 こんな時はTOMCATプラグインの「JVMの設定」のクラスパスのところの設定を見てみてください。 ここに古いPJのJARなどへの参照が入っているとプラ…

SeasarとJava6

Java6でSeasarを動かそうとすると怒られるのでJava5でやりましょう。もしくはJava5のrt.jarをクラスパスに通して6.0ラインタイムより上に持ってきましょう。

S2jdbcつかってみた

ChuraでS2jdbc使う時は「convention.dicon」に以下の記載が無いと落ちる。 落ちた時のスタックはこんな感じ。 org.seasar.framework.container.IllegalAutoBindingPropertyRuntimeException: [ESSR0080]クラス(org.seasar.extension.jdbc.meta.ColumnMetaFac…

HotDeployの仕組み

シーサーカンファレンスでHotDeployの仕組みをひがさんがちらっと解説してたのでメモ。HotDeployはリクエスト毎にクラスローダーを用意している。なのでリクエスト毎に最新のソースコードの変更が反映される。 また、クラスローダーが異なる為ステートフルな…

シーサーカンファレンス

明日はシーサーカンファレンスだ! 雨だけど盛り上がるぜ!

Javaの正規表現でエスケープ

Javaの正規表現はエスケープする時にちょっと特殊なのでメモ。 正規表現の特殊文字をエスケープするには「¥」を使います。 たとえば「penta.」を「penta!!」に置換しようとた場合viなら「s/\./!!/」と書きます。が、Javaで同じように "penta.".replaceAll("…

Seaser Conference申込はじまる

さっそく申込。事前にセッション選ばないタイプだから自由度が効いていい http://event.seasarfoundation.org/sc2007autumn/

build.xmlで「"」をエスケープしたい時

後輩が嵌っていたので書いてみる。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回の予定なんだけどこれが結構でかいね。どんどん話さなきゃいけないことが多くなって大変だ〜 アーキテクトの卵用の研修なんで表面的になぞるのではなくちゃんと内…