2010-08-19 4 views
0

J'essaye de configurer ehcache avec openjpa. Je reçois l'erreur suivante:Configuration d'OpenJPA 1.3.1 avec EhCache: plugin/alias non trouvé

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] 

voici mon extrait de persistence.xml:

 <property name="openjpa.QueryCache" value="ehcache" /> 
     <property name="openjpa.DataCacheManager" value="ehcache" /> 

voici mon 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> 

Et voici ma dépendance du plugin pom.xml: net.sf.ehcache ehcache-openjpa 0.2.0

Existe-t-il un autre moyen de configurer openjpa + ehcache?

Répondre

0

Oui, cela devrait fonctionner. Assurez-vous que le fichier ehcache-openjpa est sur votre classpath. Je sais que c'est un peu plus compliqué si vous travaillez dans un environnement conteneur (c'est-à-dire: WAS).

[mise à jour]

Je sais que j'eu ce travail à un moment donné et je devais faire quelque chose de drôle avec WAS bibliothèques partagées pour obtenir que cela fonctionne, mais je ne peux trouver aucune de mes notes. Je me rappelle vaguement que le problème était dû au fait qu'OpenJPA ne détecte pas Ehcache au démarrage, à son tour, nous n'avons pas enregistré les alias 'ehcache'.

Essayez de configurer OpenJPA avec les propriétés suivantes:

<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"/>

[/ mise à jour]

+0

Pouvez-vous fournir des détails supplémentaires sur le conteneur environemnt? Je cours WAS. –