2010-02-16 5 views
0

Grails ont cofig pour le haricot de printemps appelé resources.groovy. Et comme je comprends de documents, il vous permet d'inclure un autre fichier, en utilisant loadBeans (% path%)Grails config de haricots de printemps dans différents fichiers

Je suis essayé avec ceci:

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 

} 

mais quand Grails est en cours d'exécution, il log erreur suivant:

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 

Script security.groovy est existe à grails-app/conf/spring et totalisées par Grails plugin maven dans target/classes/security.class. Le répertoire target/resources/spring est vide en ce moment

Comment je peux configurer Grails ou grails-maven-plugin pour copier ces fichiers de configuration, ne pas le compiler en classes?

p.s. ce problème présente également lorsque je tente d'inclure des scripts de configuration à l'aide grails.config.locations = [ %path% ] dans conf/Config.groovy, mes scripts Groovy compile en classes et à cause de cela, Grails constructeur config ne peut pas les trouver :(

Répondre

1

Avez-vous essayé:

println 'loading application config ...' 


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

} 

(cela devrait charger tous les fichiers Groovy sur le chemin de classe se terminant par security.groovy et les analyser dans les définitions de haricot)

Mise à jour:. trouvé un interesting thread avec this message comme référence et je crois comprendre que l'on astuce consiste à utiliser des fourmis dans scripts/_Events.groovy pour copier le fichier .groovy au classesDirPath dir puis utilisez simplement:

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

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

Cela ressemble à un hack pour faire avancer les choses travailler à la fois dans la guerre et lors de l'exécution de run-app si. Je ne sais pas comment les choses «devraient» être faites (si cela a même du sens).

+0

essayé, mais sans succès :(Et aussi il n'y a aucune sécurité.groovy n'importe où dans classpath, grails compilé dans security.class je pense que c'est la racine du problème, mais je ne sais pas comment résoudre ce problème –

+0

merci, pirater avec _Event.groovy m'a aidé –

+1

Ces liens sont cassés :( – user2427

Questions connexes