0

そのような構成を持ってehcacheいます:

<ehcache>                                                                                                                                                                                                                                      

  <terracottaConfig url="192.168.1.4:9510"/>                                                                                                                                                                                                           

  <defaultCache                                                                                                                                                                                                                                
      maxElementsInMemory="50"                                                                                                                                                                                                                 
      eternal="false"                                                                                                                                                                                                                          
      timeToIdleSeconds="20"                                                                                                                                                                                                                   
      timeToLiveSeconds="20"                                                                                                                                                                                                                   
      overflowToDisk="false"                                                                                                                                                                                                                   
      diskPersistent="false"                                                                                                                                                                                                                   
      memoryStoreEvictionPolicy="LRU"                                                                                                                                                                                                          
      />                                                                                                                                                                                                                                       

  <cache name="foo"                                                                                                                                                                                                              
         maxElementsInMemory="50000"                                                                                                                                                                                                           
         eternal="true">                                                                                                                                                                                                                       
    <terracotta />                                                                                                                                                                                                                             
  </cache>                                                                                                                                                                                                                                     

</ehcache> 

機能しません。アプリケーションはterracottaサーバーに接続しませんが、起動時に次のような例外がスローされます。

 net.sf.ehcache.ObjectExistsException: Cache foo already exists. 

デバッグ ログを有効にすると、どこかに読み込まれていることがehcacheわかりません( jar ファイル内のクラスパスにある別のログが読み込まれます)。何が問題になる可能性がありますか?ehcache.xmlehcache.xml

私のgrailsバージョンは2.1.1ehcache.xmlディレクトリにありgrails-app/confます。

UPDATE 1もう1 つの説明。という名前のキャッシュfooは、参照としてコード内およびコード内で使用されehcache.xmlます (実際には Apache Camel ルートでは to('cache://foo') です。fooコードで名前を変更するとbar(たとえば、ルートは to('cache://bar' のようになります) ) という例外をスローしますCache bar already exists。したがって、例外はehcache.xml構成ファイルからではなく、そのキャッシュを名前で参照するコードから発生します。

UPDATE 2が参照される キャメル ルート内に 2 つの場所があるため、例外がスローされたcache://fooようです。2 番目の参照に到達すると、その例外がスローされます。したがって、主な質問は、ehcache.xml起動時にアプリケーションに表示されないのはなぜですか? ウォームアップしてcache://foo、将来の使用に備える必要があります。

更新 3 以前は動作していたようgrails 1.3.7です。そして今、それは動作しませんgrails 2.1.1

4

1 に答える 1

0

-noreloading オプションを付けて grails を実行すると、問題なく動作します。クラスパスの問題である必要があります。

于 2013-01-10T10:53:18.107 に答える