0

grailsApplicationからいくつかの構成プロパティにアクセスするサービスがあります

このように注入しています

    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
   }
}

getProxy()メソッドを呼び出すと、Tomcatログにこれが表示されます

メソッドの署名なし:org.example.MyWebService.getProxy()は引数タイプに適用可能:(groovy.util.ConfigObject、java.lang.Boolean)値:[[:]、true]可能な解決策:getProxy()、getProxy (java.lang.String、boolean)、setProxy(java.lang.Object)

これは、grailsApplicationがサービスに注入されていないことを意味しますが、構成オブジェクトにアクセスする別の方法はありますか?burtbeckwithのpostconfigurationholderによると、非推奨になり、他に何も考えられません。

興味深いことに、ローカルIDE(GGTS 3.1.0)でもまったく同じサービスが正常に機能します。つまり、ローカルでgrailsApplicationが注入されますが、スタンドアロンのTomcatにデプロイする戦争を作成すると、注入が停止します。

4

1 に答える 1

0

私は問題を理解したようですが、実際にはgrailsApplicationが適切に注入されています。そうでない場合は、nullポインター例外がスローされ、構成プロパティが追加されていないと感じます。実際のシナリオは、さまざまな環境の構成データを保持する別のカスタム構成ファイルがあり、アプリケーションが環境タイプ(tomcatから設定される変数)をリッスンし、それに基づいてカスタム構成の対応する構成プロパティをマージするようなものです。ファイル。私はそれらのプロパティがおそらく追加されていないと思います

于 2012-10-28T12:58:53.427 に答える