2009年12月アーカイブ

cronで毎日とか毎時とかに指定したJavaを実行する時に注意しなきゃいけないのが、
PATHがすべてリセットされるということ。



なので、cronでは直接javaの実行コマンドを書かずに、
.shファイルに設定やjavaコマンドを記述し、その.shをcronで叩くようにする。



.shファイル
#!/bin/bash
PATH=/usr/java/latest/bin
JAVA_HOME=/usr/java/latest
CLASSPATH=.:/usr/java/latest/lib

#Linuxでjniを使う場合 LD_LIBRARY_PATH=/usr/lib
#Macでjniを使う場合 #DYLD_LIBRARY_PATH =/usr/lib java ・・・



javaコマンドの引数でパスを指定する場合は、
CLASSPATH -> -cp=ほげほげ
LD_LIBRARY_PATH -> -Djava.library.path=ふがふが

とすればおk



(追記)





前回は、JSONのデータをStringプリミティブにそのラッパー
そしてJavaBeansの命名規則にそったクラスのオブジェクトに
自動変換してくれるってとこまでやりました!!



今回は、JSONのキー名とJavaのフィールド名のマッピングや、
JSONのキー名の先頭を大文字にしたクラス名以外のJavaクラスへのマッピングの方法のメモだよ!!




・JSONのキーを、Javaの任意のフィールドにマッピングする
例えば、サンシャイン牧場では1つ1つの畑にインデックスが振られていて、
1: {
  畑の情報
}, 
2: {

みたいになってたのね。

でも、Javaのフィールド名に1とか2とか付けれないじゃん!!
なので、JSONの1の値をJavaのfarm1に代入する方法を書くよ!!


まずは、前回の復習で、String jsonにJSON形式のデータが文字列で入っていて、
それを、Hogeクラスのオブジェクトにマッピングするには、
とするよ!!


んで、本題のJSONのキー"1"をJavaのfarm1にマッピングするには、
JavaIdentifierTransformerクラスのtransformToJavaIdentifier()関数をオーバーライドして
条件式を記述する。
そしてそのインスタンスをJsonConfigクラスのsetJavaIdentifierTransformer()を使って、
JsonConfigオブジェクトにセットする。





・Javeのフィールド名を、任意のJavaクラスにマッピングする
デフォルトだと、Javaのhogeフィールドには、HogeクラスのオブジェクトやintやStringの値が
マッピングされるんだけど、

hogeもfooもBarクラスのオブジェクトに変換したいんだよー!!

という時のマッピング方法は、↑のようにJsonConfigを用いて


とすればおk



<参考>