2011-10-23 3 views
1

나는 grails 애플리케이션을 가지고 있고 run-app를 할 때도 좋다. 그러나 후에 : grails run-war, 나는 오류를 따라 간다 :grails run-war로 인한 오류

 
Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener 

org.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) 

어떤 도움을 주셔서 감사합니다. 감사!

답변

0

문제가 줄을

새로운 파일 널 (null) 인베이스 인수로 인해 발생합니다 (기본 "LDAP - 서버/$ beanName에")

grails.ldap.server.TransientGrailsLdapServer.getWorkDir에서

()

이것은 구성 문제를 가리키며, 아마도 기본 인수가 널 (null)이되는 환경간에 약간의 차이가있을 수 있습니까?

1

바람둥이에 배포 할 때 "ldap-server"플러그인과 동일한 문제가있었습니다.

ServletContextHolder.servletContext 

사용 : 다음 TransientGrailsLdapServer.getWorkDir에 대한

ApplicationHolder.application.parentContext.servletContext 

전체 소스() :

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") 
} 
나를 위해 은 수정

대신 ApplicationHolder를 통해 ServletContext 내를 제공하는 것이 었습니다