我正在使用Grails 2.3.8

当我在服务类中更改方法的名称并尝试调用它时,出现类似以下错误:

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

现在,我想这是因为实际的服务类被包装在spring的“增强器”中,并且以某种方式使其无法重装,但是我不确定原因为何,并且我还没有找到有关此的任何信息。

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

最佳答案

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

  • 从这里下载springloaded-1.2.0:http://search.maven.org/remotecontent?filepath=org/springframework/springloaded/1.2.0.RELEASE/springloaded-1.2.0.RELEASE.jar
  • 将此jar复制到grails-2.3.7 / lib / org.springframework / springloaded / jars
  • 编辑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%\”
  • 重新启动grails
  • 08-05 05:01