/ / Налаштування OpenJPA 1.3.1 за допомогою EhCache: плагін / псевдонім не знайдено - java, ehcache, openjpa

Налаштування OpenJPA 1.3.1 за допомогою EhCache: плагін / псевдонім не знайдено - java, ehcache, openjpa

Я намагаюся налаштувати 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]