2012-01-01から1年間の記事一覧

ping コマンドで送信元IPアドレスを指定する方法

ホストに複数のインタフェースがあって複数の IPアドレス が付いていたりすると、ICMP パケットの送信元アドレスに意図しない IPアドレス が選ばれて困ったりします。そういう場合は ping コマンドにオプションを付けて対処しましょう。 Linux 系の場合 $ pi…

ANTLRv3 を Maven から使う

ANTLR は Java で書かれたパーサジェネレータです。文法を定義したファイル (.g) からパーサのコードを自動生成してくれます。今回は ANTLR を antlr3-maven-plugin で Maven から使ってみます。 サンプル Maven の設定ファイル (pom.xml) です。

Jersey (JAX-RS) のアクセス制御

今回は Jersey (JAX-RS) で作った WebAPI でアクセス制御を行う方法について書きます。JAX-RS は J2EE の仕様である以上、アクセス制御をロール単位で行う点に変わりはありません。とはいえ、アプローチの方法は複数あります。主に 3 つです。1. web.xml (な…

お財布を落としたとき、必要以上に困らないようやっておくべき 3 つのこと

去年、酔っぱらったあげくに現金にキャッシュカード、保険証など諸々一式入ったお財布を外で落として途方に暮れました。本当に色々と困ったので、その時の経験をもとに、あらかじめやっておいた方が良いことについて書いておきます。 お財布以外で現金または…

Google Guice で JPA のトランザクションを管理する

トランザクション管理って面倒ですよね。JPA を使うときを考えると、まず EntityManagerFactory を作って、EntityManager を取得して、EntityTransaction を取得して、開始して、コミットして、例外が上がったらロールバックして…。うーん、継承などで処理を…

Jackson JSON Proceccor で JSON を扱う (データバインディング編)

Java で JSON を扱うのに Jackson JSON Processor が便利です。他の JSON を扱うライブラリと比較するとパフォーマンスに優れるそうですが、何より API がシンプルで使いやすいです。Jackson で JSON を扱うには 3 つの方法があります。今回紹介するのは、パ…

Google Guice で AOP (アスペクト指向プログラミング)

プログラムのあっちゃこっちゃで頻繁に登場するような処理などを上手く取り扱うために AOP (Aspect Oriented Programming) という技法があるみたいです。このエントリは Google Guice という Java の DIコンテナ を使って AOP を試した際のメモです。今回の…

Maven の archetype:create ゴールは非推奨 (Deprecated)

Maven でプロジェクトを作る方法に archetype:create ゴールを使うやり方がありますが、これは 2012/01 現在、非推奨 (Deprecated) とされています。今後は archetype:generate ゴールを使いましょう。 http://maven.apache.org/archetype/maven-archetype-p…

RabbitMQ を OSX + Homebrew + Java で使ってみる

RabbitMQ というメッセージ指向ミドルウェアが便利らしい、という話を聞いて使ってみました。メッセージ指向ミドルウェアそのものの説明は他におまかせして、公式の Tutorial を試して便利に思った機能について書いてみます。 準備 RabbitMQ は使う前にマシ…

Jersey Test Framework を使って WebAPI の単体テストを書いてみる

フロントエンドの HTML やアプリケーションと WebAPI を別々に開発すると、ビューとロジックをほぼ完全に分離できます。それぞれの責務が絞られるので、もともと不具合が生じにくいというのもありますが、何より WebAPI は単体テストが書きやすいという点で…