gpt4 book ai didi

tomcat - grails run-war 的错误

转载 作者:行者123 更新时间:2023-11-28 22:22:50 43 4
gpt4 key购买 nike

我有 grails 应用程序,在执行 run-app 时 - 一切正常!但是在:grails run-war 之后,我得到以下错误:

 Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'd1LdapServer': Invocation of init method failed; nested exception is groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.io.File#.Cannot resolve which method to invoke for [null, class java.lang.String] due to overlapping prototypes between:    [class java.io.File, class java.lang.String]    [class java.lang.String, class java.lang.String]    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)    at java.util.concurrent.FutureTask.run(FutureTask.java:138)    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)    at java.lang.Thread.run(Thread.java:662)Caused by: groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.io.File#.Cannot resolve which method to invoke for [null, class java.lang.String] due to overlapping prototypes between:    [class java.io.File, class java.lang.String]    [class java.lang.String, class java.lang.String]    at grails.ldap.server.TransientGrailsLdapServer.getWorkDir(TransientGrailsLdapServer.groovy:265)    at grails.ldap.server.TransientGrailsLdapServer.startDirectoryService(TransientGrailsLdapServer.groovy:208)    at grails.ldap.server.TransientGrailsLdapServer.start(TransientGrailsLdapServer.groovy:79)    at grails.ldap.server.TransientGrailsLdapServer.afterPropertiesSet(TransientGrailsLdapServer.groovy:67)

感谢任何帮助。谢谢!

最佳答案

在 tomcat 上部署时与“ldap-server”插件有同样的问题。对我来说,解决方法是通过 ApplicationHolder 提供 servletContext

改为:

ServletContextHolder.servletContext

使用:

ApplicationHolder.application.parentContext.servletContext

TransientGrailsLdapServer.getWorkDir() 的完整源代码:

import org.codehaus.groovy.grails.commons.ApplicationHolder

private getWorkDir() {
def base = ApplicationHolder.application.parentContext.servletContext ? WebUtils.getTempDir(ApplicationHolder.application.parentContext.servletContext) : new File(BuildSettingsHolder.settings?.projectWorkDir, beanName)
new File(base, "ldap-servers/$beanName")
}

关于tomcat - grails run-war 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7866210/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com