Я намагаюся налаштувати ehcache з openjpa. Я отримую таку помилку:
org.apache.openjpa.lib.util.ParseException:
Instantiation of plugin "DataCacheManager" with value "ehcache" caused an error
"java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: ehcache".
The alias or class name may have been misspelled, or the class may not have be available in the class path.
Valid aliases for this plugin are: [default]
ось мій уривок з persistent.xml:
<property name="openjpa.QueryCache" value="ehcache" />
<property name="openjpa.DataCacheManager" value="ehcache" />
ось мій ehcache.xml:
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect" dynamicConfig="true">
<!-- -->
<cache name="openjpa" maxElementsInMemory="10000"
maxElementsOnDisk="1000" eternal="false" overflowToDisk="true"
diskSpoolBufferSizeMB="20" timeToIdleSeconds="300"
timeToLiveSeconds="600" memoryStoreEvictionPolicy="LFU"
transactionalMode="on" />
</ehcache>
І ось моя залежність від плагіна pom.xml: net.sf.ehcache ehcache-openjpa 0,2,0
Чи є інший спосіб налаштувати openjpa + ehcache?
Відповіді:
0 для відповіді № 1Так, це має працювати. Переконайтесь, що баночка ehcache-openjpa стоїть на вашому класі. Я знаю, що це трохи складніше, якщо ви працюєте в контейнерному середовищі (тобто: WAS).
[оновити]
Я знаю, що я працював у цей момент і мавзробити щось смішне з бібліотеками, що ділилися WAS, щоб змусити це працювати, але я не можу знайти жодних своїх записок. Я з точністю згадую, що проблема була пов'язана з тим, що OpenJPA не виявляє Ehcache при запуску, в свою чергу ми не зареєструвались псевдоніми "ehcache".
Спробуйте налаштувати OpenJPA з такими властивостями:
<property name="openjpa.QueryCache" value="net.sf.ehcache.openjpa.datacache.EhCacheQueryCache"/>
<property name="openjpa.DataCacheManager" value="net.sf.ehcache.openjpa.datacache.EhCacheDataCacheManager"/>
<property name="openjpa.DataCache" value="net.sf.ehcache.openjpa.datacache.EhCacheDataCache"/>
<property name="openjpa.RemoteCommitProvider" value="net.sf.ehcache.openjpa.datacache.NoOpRemoteCommitProvider"/>
[/ update]