java - 脚本修改后部署的 Web 应用程序中发生 Groovy 转换异常

标签 java web-applications groovy classloader

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

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

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

最佳答案

这肯定是类加载器的问题。 如果您需要重新加载类(我想是为了更快的开发),请尝试 JRebel 。与 groovy 和 tomcat 配合良好。

关于java - 脚本修改后部署的 Web 应用程序中发生 Groovy 转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18899539/

相关文章:

ssl - Cloudflare 和 Heroku 的 Multi-Tenancy SSL

Jenkins RoleBasedAuthorizationStrategy 将用户添加到角色 Groovy 脚本

java - 双向链表的排序方法

Java 未将 "\u"写入属性文件

ASP.NET Web 应用程序找不到程序集

java - 将 Web 内容存储在 JAR 文件中

asp.net-mvc - 什么是 ASP 的 ContentPlaceHolder 的 Grails GSP 等价物?

java - 从Gradle访问PATH变量?

java - Java 中的三角形分析

java - 如何使用 GWT 2.1 数据表示小部件