Pergunta

Grails têm cofig para o feijão de primavera chamado resources.groovy. E, como eu entendo dos documentos, permite que você inclua outro arquivo, usando o LoadBeans (%Path%)

Estou tentei com isso:

println 'loading application config ...'


// Place your Spring DSL code here
beans = {
    loadBeans("classpath:security") //i'm tried with "spring/security" and "spring/security.groovy" also

}

Mas quando o Grails está executando o registro seguindo o erro:

Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Error evaluating bean definition script: class path resource [security] cannot be opened because it does not exist
Offending resource: class path resource [security]; nested exception is java.io.FileNotFoundException: class path resource [security] cannot be opened because it does not exist
 at grails.spring.BeanBuilder.loadBeans(BeanBuilder.java:470)
 at grails.spring.BeanBuilder.loadBeans(BeanBuilder.java:424)
 at resources$_run_closure1.doCall(resources.groovy:13)
 at resources$_run_closure1.doCall(resources.groovy)
 ... 45 more

Roteiro security.groovy existe em grails-app/conf/spring e compilado por Grails Maven Plugin em target/classes/security.class. Diretório target/resources/spring está vazio neste momento

Como posso configurar Grails ou Grails-Maven-Plugin para copiar esses arquivos de configuração, não compilá-lo em classes?

PS Esse problema também apresenta quando tento incluir scripts de configuração usando grails.config.locations = [ %path% ] lado de dentro conf/Config.groovy, meus scripts groovy compilam em classes e, por causa disso, o Builer de Config do Grails não consegue encontrá -los :(

Foi útil?

Solução

Você tentou:

println 'loading application config ...'


// Place your Spring DSL code here
beans = {
    loadBeans("classpath:*security.groovy") 

}

(Isso deve carregar todos os arquivos groovy no caminho de classe terminando com security.groovy e analisá -los em definições de feijão).

Atualizar: Encontrou um Tópico interessante com esta mensagem Como referência e meu entendimento é que um truque é usar a formiga em scripts/_Events.groovy Para copiar o .groovy arquivo para o classesDirPath diretor e simplesmente use:

beans = {
    // load spring-beans for db-access via spring-jdbc-template
    loadBeans('security.groovy')

    // load some other spring-beans
        ...
}

Parece um hack para fazer as coisas funcionarem tanto na guerra quanto ao correr. Não tenho certeza de como as coisas "devem ser feitas" (se isso faz sentido).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top