更改服务方法名称时Grails Reloading Exception

时间:2014-07-22 11:22:10

标签: grails spring-loaded

我正在使用Grails 2.3.8

当我在服务类中更改方法的名称并尝试调用它时,我得到类似于此的错误:

org.springsource.loaded.ReloadException: ReloadableType.determineDispatcher(): expected com.SomeService$$EnhancerBySpringCGLIB$$a85275cb to be reloadable

现在我想这是因为实际的服务类被包装在spring的“增强器”中,这在某种程度上使它无法加载,但我不确定为什么,而且我没有找到任何有关此信息的信息。

是否有解决方法,或者每当我更改方法名称时是否必须重新启动应用程序?

2 个答案:

答案 0 :(得分:0)

在Grails 2.3中,使用grails命令启用重新加载:

grails -reloading run-app

或者你可以设置

grails.reload.enabled = true
BuildConfig.groovy中的

这两种方法都不完美。在这里查看更多参考:

https://grails.org/Auto+Reloading

Grails 2.3.0 Auto-reloading not working

答案 1 :(得分:0)

要在grails控制台中修复可重新加载的警告,请按照下列步骤操作:

  1. 从此处下载springloaded-1.2.0:http://search.maven.org/remotecontent?filepath=org/springframework/springloaded/1.2.0.RELEASE/springloaded-1.2.0.RELEASE.jar
  2. 将此jar复制到grails-2.3.7 / lib / org.springframework / springloaded / jars
  3. 编辑grails-2.3.7 / bin / startGrails文件,搜索AGENT_STRING并将AGENT_STRING更改为指向它而不是分发中包含的1.1.5。它应该是这样的:

    设置AGENT_STRING = -javaagent:“%GRAILS_HOME:\ = /%/ lib / org.springframework / springloaded / jars / springloaded-1.2.0.RELEASE.jar”-noverify -Dspringloaded = \“%SPRINGLOADED_PARAMS%\”

  4. 重启grails