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:在 controllers.CRUD 上应用 AccessControlPlugin@1a5db4b
        在 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 回答