GlassFish v3 でJNI
GlassFishにJNIを使ったアプリケーションをデプロイする方法。
普通にWarにしてデプロイするとjava.lang.UnsatisfiedLinkErrorが発生する。
これはGlassFishのClassLoaderとアプリケーションのClassLoaderが違うため、JVMの仕様?で同じネイティブライブラリにアクセスできなくて発生するエラー。
じゃあどうするか。JNIを使用する部分だけをjarにして
[glassfihs_home]/lib
にぶち込む。このディレクトリはGlassFish起動時にパスに含まれるのでwarには含めなくてOK。
こうすることでネイティブライブラリにアクセスするのはGlassFishのClassLoaderだけになる。したがってjava.lang.UnsatisfiedLinkErrorは発生しないというわけ。
こんなのに結構はまった。時間がもったいない・・。