2012-10-28 3 views
0

는 I 서비스되는 난 getProxy을 (호출하면 I이의 GrailsApplication는 2.1.0

class MyWebService{ 
     def grailsApplication 
     WebService webService = new WebService() 

     def getProxy(url, flag){ 
     return webService.getClient(url) 
     } 

    def getResponse(){ 
    def proxy = getProxy(grailsApplication.config.grails.wsdlURL, true) 
    def response = proxy.getItem(ItemType) 
    return response 
    } 
} 

처럼 주입하고

의 GrailsApplication

에서 몇 가지 구성 속성에 액세스하고있는 Grails의) 메소드에서, 나는 이것을 톰캣 로그에서 보았다.

메소드의 서명이 없다 : org.example.MyWebService.getProxy()는 인자 타입에 적용 가능하다. (groovy.util.ConfigObject, java.lang.Boolean) values ​​: [[ :], true] 가능한 해결책 : getProxy(), getProxy (java.lang.String, boolean), setProxy (java.lang.Object)

즉, grailsApplication이 서비스에 삽입되지 않는다는 것을 의미합니다. burtbeckwith의 게시자 구성에 따르면, 다른 것을 생각할 수 없습니다.

흥미롭게도 내 로컬 IDE (GGTS 3.1.0)에서 매우 똑같은 서비스가 작동합니다. 즉, grailsApplication이 주입되고 있음을 의미하지만 독립형 바람둥이에 배포 할 전쟁을 만들면 주입이 중단됩니다.

+0

나는 투표를하지 않을 이유가 없다. 너는 너무 많은 표석을 알고 있거나 전혀 모른다. –

답변

0

실제로 grailsApplication이 올바르게 삽입되지 않으면, null 포인터 예외가 발생했을 것입니다. 구성 속성이 추가되지 않는다고 느낍니다. 실제로 시나리오는 다른 환경에 대한 구성 데이터를 보유하고있는 별도의 사용자 정의 구성 파일을 가지고 있으며 응용 프로그램이 환경 유형 (Tomcat에서 설정된 변수)을 수신하고 이에 기반하여 사용자 정의 구성의 해당 구성 등록 정보를 병합합니다 파일. 나는 그 증언이 아마도 추가되지 않을 것이라고 생각한다.