0

我正在尝试为静态 java 类型模板引擎实现热交换机制。我遵循 Play!Framework 使用的相同方法来重新加载应用程序类。但是我总是收到以下错误:

Caused by: java.lang.UnsupportedOperationException: class redefinition failed: attempted to change the schema (add/remove fields)
        at sun.instrument.InstrumentationImpl.redefineClasses0(Native Method)
        at sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:150)
        at play.classloading.HotswapAgent.reload(HotswapAgent.java:21)
        at com.greenlaw110.rythm.play.RythmPlugin$5.reload(RythmPlugin.java:226)
        at com.greenlaw110.rythm.internal.compiler.TemplateClassLoader.detectChange(TemplateClassLoader.java:335)
        ... 19 more

任何人都知道游戏如何在这个问题中幸存下来?

4

1 回答 1

1

我想我有点明白发生了什么。Play 的应用程序类加载器实际上无法在这种错误中幸存下来。它的作用是在出现错误时重新启动 Play,在该过程中 play 将创建应用程序类加载器的新实例。我遵循了同样的过程,它被证明是有效的。

于 2012-02-18T04:28:44.543 回答