私のモデルクラスへのCtClass参照を取得しようとしています。私は最も簡単なバージョン ClassPool.getDefault().get(className);
で始まり、うまくいきました。しかし、私のマシンでのみ。サーバー上では動作しません。playframeworkでjavassistクラスを取得する
とにかく、Playframeworkはクラスをtmp/classに保存しているので、バージョンは機能しないはずです。だから今私はこのバージョンで完了:
ClassPool pool = new ClassPool();
pool.appendClassPath(Play.applicationPath + "/tmp/classes");
CtClass cls = pool.get(className);
しかし、私はこのバージョンについては分かりません。それはいつも働くでしょうか?より良い選択肢がありますか?
ClassClassPathとLoaderClassPathを使用してみましたが、成功しませんでした。
ありがとう:
PS:
classPool
は、次のコードから来についてplay.classloading.enhancers.Enhancer.makeClass
メソッドの実装。まあ、私はそれを使用する必要はありませんと言っていただきありがとうございます;)注釈から構成を読み取るためにCtClassが必要で、標準のjava.reflectionは必要なものを提供しません。 – sdespolit