1

我之前问过一个类似的问题,但想了解一下 GroovyScriptEngine 的机制以及如何执行类加载。我有一个 Vaadin Web 应用程序,其中包含 WEB-INF 中的 groovy 类。webapp 通过 GroovyScriptEngine 加载 UI 逻辑。以下是导致错误的一系列事件:

  1. 将war部署到tomcat并启动服务器,应用程序按预期运行
  2. 我对位于已展开的 WEB-INF 文件夹中的 groovy 文件进行了微不足道的更改(例如,备注)
  3. 刷新页面,GSE 显然会重新加载类,并且应用程序会出现 GroovyCastException:无法将具有类 'com.company.myclass' 的对象 'com.company.myclass@7cde31f8' 转换为类 'com.company.myclass'。

我知道这可能是类加载器问题。建议?我认为 GroovyScriptEngine 的全部意义在于它无需重新启动容器即可处理热编辑的 groovy 类。

4

1 回答 1

1

确定这是 ClassLoader 问题。如果您需要重新加载类(我想是为了加快开发速度),请尝试JRebel。适用于 groovy 和 tomcat。

于 2013-09-19T17:54:02.973 回答