2

Play プラグインで基本的なバイトコード拡張を試していますが、ApplicationClasses.ApplicationClass指定された で操作しようとすると、クラスが見つかりません。

public void enhance(ApplicationClasses.ApplicationClass applicationClass)
    throws NotFoundException, IOException, CannotCompileException 
{
    ClassPool classPool = ClassPool.getDefault();
    CtClass ctClass = classPool.get(applicationClass.name);
    ...
}

例外は

おっと: NotFoundException 例外 NotFoundException により予期しないエラーが発生しました: controllers.CRUD

play.exceptions.UnexpectedException: コントローラに AccessControlPlugin@1a5db4b を適用している間.CRUD
        play.classloading.ApplicationClasses$ApplicationClass.enhance(ApplicationClasses.java:215) で
...
原因: javassist.NotFoundException: controllers.CRUD
        javassist.ClassPool.get(ClassPool.java:436) で
        AccessControlPlugin.enhance (AccessControlPlugin.java:19) で

Play フレームワークがenhanceメソッドを呼び出しています。まだ利用できないクラスを処理するよりもよく知っているべきではありませんか? これを機能させるにはどうすればよいですか?

4

1 に答える 1

0

プラグインのロード順play.pluginsを 1000 に増やした場合、つまりビルトイン プラグインの後にすると効果がありますか? プラグインのエンハンス メソッドが特定のクラスに対して呼び出されないという問題はありましたが、エンハンスメントでこの問題は見たことがありません。

于 2011-01-08T18:34:51.627 に答える