我们有一个由 grails 2.1.4 和 JDK 1.7 实现的应用程序,我们需要将其迁移到 grails 2.4.0 和 JDK 1.8。
在更新到 grails 2.4.0 时,以下是我们完成的更改。
- 更新了 BuildConfig.groovy 和 application.properties 文件中的所有插件。
许多类已弃用,因此我使用了 grails.util.Holders 类而不是以下已弃用的类。
org.codehaus.groovy.grails.commons.ApplicationHolder org.codehaus.groovy.grails.commons.ConfigurationHolder org.codehaus.groovy.grails.plugins.PluginManagerHolder
对于少数类,我已根据 grails 2.4.0 更改了导入包
- 最新的richUI 插件不可用,所以我在richUI 插件groovy 类中更新了Holders 类而不是ConfigurationHolder。
成功构建战争并在tomcat中部署战争。
问题是无法将链接从 urlmappings.groovy 重定向到主控制器和适当的 gsp。
- 试图重定向到 project(index.gsp) 中的另一个 gsp,但它不能。
- 创建了新的 gsp(hello.gsp) 并从 urlmappings.groovy 重定向到 hello.gsp,但它不起作用。
尝试加载应用程序 URL http://localhost:8080/abc时,它将重定向到http://localhost:8080/abc/login/auth显示页面无法显示
在调试时,控制从 urlmappings.groovy 转到 bootstrap.groovy,而且它不会在任何地方导航。
任何帮助表示赞赏。提前致谢
添加 Urlmappings.groovy
static mappings = {
"/$controller/$action?/$id?"{ constraints {
// 在这里应用约束
} }
// Home
"/"(controller:"home",action:"index")
// 报告服务urls
"/services/report"(controller: "BirtReport"){
action=[GET:"list"]
}
"500"(view:'/error')
}
在运行应用程序时,我在 stacktrace.log 中收到以下错误
错误 context.GrailsContextLoaderListener - 初始化应用程序时出错:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义名称为“pluginManager”的 bean 创建错误:调用 init 方法失败;嵌套异常是 java.lang.RuntimeException:无法使用类 org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass 类 org.springframework.beans.factory.BeanCreationException 的类参数找到构造函数:创建 ServletContext 中定义的名称为“pluginManager”的 bean 时出错资源[/WEB-INF/applicationContext.xml]:init方法调用失败;嵌套异常是 java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass
在 java.util.concurrent.FutureTask.run(FutureTask.java:266)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :617)
在 java.lang.Thread.run(Thread.java:745)
引起:java.lang.RuntimeException: 无法使用类 org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass 的类参数找到构造函数
... 4 更多
原因:java.lang.reflect.InvocationTargetException
... 4 更多
原因:java.lang.NoClassDefFoundError: org/pentaho/di/core/logging/LogLevel
at java.lang.Class.privateGetDeclaredMethods(Class.java:第2693章
在 java.lang.Class.getDeclaredMethods(Class.java:1967)
... 4 更多
原因:java.lang.ClassNotFoundException: org.pentaho.di.core.logging.LogLevel
at java.net.URLClassLoader$1.run( URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java: 424)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 还有 6 个