Конфигурирование OpenJPA 1.3.1 с EhCache: плагин / псевдоним не найден - PullRequest
0 голосов
/ 19 августа 2010

Я пытаюсь настроить 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]

вот мой отрывок из persistence.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?

1 Ответ

0 голосов
/ 19 августа 2010

Да, это должно работать. Убедитесь, что файл 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"/>

[/ обновление]

...