2017-06-14 9 views
0

私は、ehCache用のJMXを実装するために、記事here & hereに従おうとしています。Springのehcache実装でJMXを設定しますか?

org.springframework.beans.factory.UnsatisfiedDependencyException: エラーが名「managementService」クラス パスリソースに定義されている[TRSを持つBeanを作成する私のアプリは、設定項目は以下のこの例外を取得しかし&春の実装を使用しています。 application.finance.businessactivites.xml]: でコンストラクタ引数で表現されている満足度の低い依存性[net.sf.ehcache.CacheManager]タイプのインデックス0: コンストラクタの引数型の値 [org.springframework.cache.ehcache .EhCacheCacheManager]を必要とする [net.sf.ehcache.CacheManager]タイプ:失敗しました 'org.springframework.cache.ehcache.EhCacheCacheManager'タイプの値を必要な値に変換する タイプ 'net.sf.ehcache.CacheManager';ネストされた例外は java.lang.IllegalStateExceptionある:一致するエディタや変換

戦略が見つかりませんでした。必要 タイプ[net.sf.ehcache.CacheManager]に[org.springframework.cache.ehcache.EhCacheCacheManager]タイプ の値を変換できません。

springにはnet.sf.ehcache.management.ManagementServiceの実装がありますか?使用できますか?もしそうなら、どうすれば私のアプリでehcacheのJMXサポートができるように設定するのですか?

「managementService」&「mbeanServer」beanは、& jmxに登録するehcacheを取得するために追加したものです。 "myCacheManager"はすでに私の春の設定で存在しています&は、ehcacheが単独で行っているのでうまく動作しているようです。

<bean id="managementService" class="net.sf.ehcache.management.ManagementService" 
     init-method="init" 
     destroy-method="dispose"> 
    <constructor-arg ref="myCacheManager"/> 
    <constructor-arg ref="mbeanServer"/> 
    <constructor-arg index="2" value="true"/> 
    <constructor-arg index="3" value="true"/> 
    <constructor-arg index="4" value="true"/> 
    <constructor-arg index="5" value="true"/> 
</bean> 
<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"> 
     <property name="locateExistingServerIfPossible" value="true"/> 
</bean> 
<bean id="myCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> 
    <property name="cacheManager"> 
     <bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 
      <property name="configLocation" value="classpath:ehcache.xml"/> 
     </bean> 
    </property> 
</bean> 

答えて

1

問題は、豆を配線する方法です。

あなたが本当にmyCacheManagercacheManagerとして返され、渡された豆を使いたい、managementServicemyCacheManagerを使用したくありません。

だから私は、次のように移動することをお勧め:

<bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 
    <property name="configLocation" value="classpath:ehcache.xml"/> 
</bean> 

トップレベルBeanにそれがmanagementServiceに注入することができるようになっています。

関連する問題