使用EhCache配置OpenJPA 1.3.1:找不到插件/别名

时间:2010-08-19 11:30:10

标签: java ehcache openjpa

我正在尝试使用openjpa配置ehcache。我收到以下错误:

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 :(得分:0)

是的它应该有效。确保ehcache-openjpa jar在您的类路径中。我知道如果你在容器环境中运行(例如: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"/>

[/更新]