Я использую camel 2.18.1 и компонент camel-ehcache для создания простого кеша. Пока настройка кеша работает нормально, мне трудно зарегистрировать mbeans, используя ehcache 3.1.2 (это втягивается через верблюда).Включение поддержки JMX в ehcache 3.1.2
Чтение документации - неясно, как можно включить поддержку с 3.x, поскольку стандартный способ регистрации mbeans с использованием ManagementService больше не доступен в API.
Документация немного запутанна с реализацией чистого ehcache и реализацией кеша JSR-107.
Хотя реализация JSR-107 JCache есть варианты, чтобы включить поддержку JMX, проводка конфигурации XML и начиная кэш выглядит бросать исключение на старте кэша:
Caused by: java.lang.IllegalArgumentException: Couldn't resolve Service org.ehcache.jsr107.config.Jsr107Service
Мой конфигурации XML для справки ниже: Любые указатели на то, как можно включить поддержку JMX для ehcache 3.x и какие дополнительные зависимости потребуются?
<ehcache:config
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:ehcache="http://www.ehcache.org/v3"
xmlns:jcache="http://www.ehcache.org/v3/jsr107"
xsi:schemaLocation="
http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd
http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.0.xsd">
<ehcache:service>
<jcache:defaults jsr-107-compliant-atomics="true" enable-management="true" enable-statistics="true">
<jcache:cache name="my-cache" template="myDefaultTemplate"/>
</jcache:defaults>
</ehcache:service>
<ehcache:persistence directory="/var/cache"/>
<ehcache:cache alias="cache-test">
<!--
OPTIONAL, defaults to no expiry
Entries to the Cache can be made to expire after a given time
-->
<ehcache:expiry>
<!--
time to idle, the maximum time for an entry to remain untouched
Entries to the Cache can be made to expire after a given time
other options are:
* <ttl>, time to live;
* <class>, for a custom Expiry implementation; or
* <none>, for no expiry
-->
<ehcache:tti unit="minutes">2</ehcache:tti>
</ehcache:expiry>
<!--
The maximal number of entries to be held in the Cache, prior to eviction starting
-->
<ehcache:heap unit="entries">200</ehcache:heap>
<!--
OPTIONAL
Any further elements in another namespace
-->
<jcache:mbeans enable-statistics="true" enable-management="true" />
</ehcache:cache>
<!--
OPTIONAL
A <cache-template> defines a named template that can be used be <cache> definitions in this same file
They have all the same property as the <cache> elements above
-->
<ehcache:cache-template name="myDefaultTemplate">
<ehcache:expiry>
<ehcache:none/>
</ehcache:expiry>
<!--
OPTIONAL
Any further elements in another namespace
-->
</ehcache:cache-template>
</ehcache:config>
Спасибо @Henri. Ваше решение работает. Я пытаюсь выполнить аналогичную реализацию, используя конфигурацию xx ehcache, есть ли способ настроить поддержку управления исключительно с помощью конфигурации XML? –
Да. На самом деле это проще. Следуйте этому, чтобы создать свой 'CacheManager' http://www.ehcache.org/documentation/3.2/107.html#getting-jsr-107-caches-configured-through-ehcache-xml. Затем конфигурация XML MBeans находится в разделе, расположенном ниже. – Henri