1

Bean が適切にロードされているかどうかを実際に判断しようとすると、いくつか問題が発生します。適切にロードされた Bean をログに表示できる log4j プロパティはありますか?

いくつか試した後、私は立ち去り、ここから別の例を試しました

次のように resources.groovy を再定義します。

import grails.spring.BeanBuilder
BeanBuilder bb = new BeanBuilder()
bb.beans = {
    ldapUserDetailsMapper(example.CustomDetailsContextMapper) {
    }
}

次に CustomDetailsContextMapper は次のように定義されます。

class CustomDetailsContextMapper implements UserDetailsContextMapper {
def springSecuritySource

@Override
public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection authorities) {

これは、この種の resource.groovy セットアップを使用するときに発生するエラーです。

2012-10-12 12:52:31,663 [main] ERROR spring.GrailsRuntimeConfigurator  - [RuntimeConfiguration] Unable to load beans from resources.groovy
org.codehaus.groovy.runtime.metaclass.MissingPropertyExceptionNoStack: No such property: beans for class: resources
Possible solutions: class

beanbuilder を使用していない場合、エラーは発生しませんが、Bean が呼び出されないように見えるため、Bean がロードされていることを実際に確認できません。それ以外の場合、以下のエラーが発生します。

助言がありますか?

4

1 に答える 1

4

resource.groovy に単純に書く

beans = {
    ldapUserDetailsMapper(example.CustomDetailsContextMapper) {
    }

BeanBuilder はすでに定義されています

使用時にBeanが呼び出されます...コントローラー内でこれを試してください

VeryBeanController{

    def ldapUserDetailsMapper

    def index = {

       render( ldapUserDetailsMapper  )

    }

}

そして、コントローラーを呼び出します

于 2012-10-12T12:31:45.707 に答える