之前我问了一个类似的问题,但想要澄清一下GroovyScriptEngine的机制以及如何执行类加载。我有一个Vaadin Web应用程序,其中包含WEB-INF中的groovy类。 webapp通过GroovyScriptEngine加载UI逻辑。以下是导致错误的一系列事件:
- 将战争部署到tomcat&启动服务器,应用程序按预期运行
- 我对位于爆炸的WEB-INF文件夹中的groovy文件进行了无关紧要的更改(例如,备注)
- 刷新页面,GSE显然使用GroovyCastException重新加载类和应用程序炸弹:无法将类“com.company.myclass”的对象“com.company.myclass@7cde31f8”强制转换为“com.company.myclass”类。
醇>
我知道这可能是类加载器问题。建议?我认为GroovyScriptEngine的重点在于它处理热门编辑的groovy类而无需重新启动容器。