2013-04-18 3 views
0

Rabbitmq 및 grails의 구성 문제가 발생합니다. 다른 어떤 사람이이 특별한 상황에 직면했는지 궁금 해서요. Config.groovy 파일에서gravel에서 Rabbitmq 설정

내 rabbitmq 구성은 다음과 같다 : 의도 한대로

environments { 
    production { 
     rabbitmq { 
      connectionfactory { 
       username = '******' 
       password = '******' 
       hostname = 'ip-******.ec2.internal' 

       channelCacheSize = 25 
       prefetchCount = 10 
       concurrentConsumers = 3 
      } 
      retryPolicy { 
       maxAttempts = 10 
      } 
      queues = { 
       exchange name: 'plover', type: topic, durable: true, { 
        error durable: true, binding: 'error.#' 
        user durable: true, binding: 'user.#' 
        track durable: true, binding: 'track.#' 
        klout durable: true, binding: 'klout.#' 
        showuser durable: false, binding: 'showuser.#' 
        network durable: true, binding: 'network.#' 
        customer durable: true, binding: 'cusotmer.#' 
        recommend durable: true, binding: 'recommend.#' 
        pusher durable: true, binding:'pusher.#' 
        backfill durable: true, binding: 'backfill.#' 
        mail durable: true, binding: 'mail.#' 
        checkaction durable: true, binding: 'checkaction.#' 
        timertasks durable: true, binding: 'timertasks.#' 
        mission durable: true, binding: 'mission.#' 
        sentiment durable: true, binding: 'sentiment.#' 
        updateuser durable: false, binding: 'updateuser.#' 
        googlereader durable: true, binding: 'googlereader.#' 
        flickr durable: true, binding: 'flickr.#' 
       } 

       exchange name:'pubsub', type: fanout, durable: true 
      } 
     } 
    } 

    development { 
     rabbitmq { 
      connectionfactory { 
       username = 'guest' 
       password = 'guest' 
       hostname = 'localhost' 
       channelCacheSize = 25 
       prefetchCount = 10 
       concurrentConsumers = 3 
      } 

      retryPolicy { 
       maxAttempts = 10 
      } 

      queues = { 
       exchange name: 'plover', type: topic, durable: true, { 
        error durable: true, binding: 'error.#' 
        user durable: true, binding: 'user.#' 
        track durable: true, binding: 'track.#' 
        klout durable: true, binding: 'klout.#' 
        showuser durable: false, binding: 'showuser.#' 
        network durable: true, binding: 'network.#' 
        customer durable: true, binding: 'cusotmer.#' 
        recommend durable: true, binding: 'recommend.#' 
        pusher durable: true, binding:'pusher.#' 
        backfill durable: true, binding: 'backfill.#' 
        mail durable: true, binding: 'mail.#' 
        checkaction durable: true, binding: 'checkaction.#' 
        timertasks durable: true, binding: 'timertasks.#' 
        mission durable: true, binding: 'mission.#' 
        sentiment durable: true, binding: 'sentiment.#' 
        updateuser durable: false, binding: 'updateuser.#' 
        googlereader durable: true, binding: 'googlereader.#' 
        flickr durable: true, binding: 'flickr.#' 
       } 

       exchange name:'pubsub', type: fanout, durable: true 
      } 
     } 

    } 
} 

그래서 모든 Rabbitmq 구성 설정은 생산/개발 환경에서 수행됩니다. 내가 생산 지역 발전 중 하나를 실행하려고 할 때

그러나, 나는 다음과 같은 오류 얻을 :

2013-04-18 13:23:10,583 [pool-7-thread-1] ERROR RabbitmqGrailsPlugin - RabbitMQ connection factory settings (rabbitmq.connectionfactory.username, rabbitmq.connectionfactory.password and rabbitmq.connectionfactory.hostname) must be defined in Config.groovy

을 그리고 난 내 구성 설정이 깨진 볼 수 없습니다. grails 환경 설정이 문서화 된대로 작동하지 않습니까?

마이크

답변

1

우리가 사용하고있는 그루비의 버전이 여러 환경 블록을 방지 ConfigSlurper의 버그가 있음을 밝혀졌습니다. 따라서 config.groovy에 여러 개의 Environment {Production {} Development {} Test {}} 표현식이있을 것으로 생각된다면 이상한 행동을 보게 될 것입니다.

이 버그에 Jira가 있습니다. Groovy 2.1에서 수정 될 예정이거나 여기 제공된 패치를 적용하고 싶습니다. 나는 패치를 많이 신뢰하지 않아서 모든 다른 환경을 하나의 큰 표현으로 (오히려보기 흉한 것처럼) 굴려 문제를 해결했습니다.

https://jira.codehaus.org/browse/GROOVY-5370