Ядро Datanucleus JPA 2 уровня 2 в Google AppEngine
Чего мне не хватает в следующей конфигурации: мой кэш Datanucleus JPA 2 уровня 2 не использует службу Memcache Google App Engine? Я использую GAE 1.7.2 SDK.
В файле persistence.xml:
org.datanucleus.api.jpa.PersistenceProviderImpl
Аннотации сущностей содержат:
@Entity
@Cacheable(true)
Мой WEB-INF / lib выглядит так:
-rw-r--r-- 1 501 20 27M Oct 3 16:13 appengine-api-1.0-sdk-1.7.2.jar
-rw-r--r-- 1 501 20 3.3M Oct 3 16:13 appengine-api-labs.jar
-rw-r--r-- 1 501 20 5.0M Oct 3 16:13 appengine-endpoints.jar
-rw-r--r-- 1 501 20 6.8K Oct 3 16:13 appengine-jsr107cache-1.7.2.jar
-rw-r--r-- 1 501 20 45K Oct 3 16:13 asm-4.0.jar
-rw-r--r-- 1 501 20 309K Oct 3 16:13 datanucleus-api-jdo-3.1.0-m3.jar
-rw-r--r-- 1 501 20 246K Oct 3 16:13 datanucleus-api-jpa-3.1.0-m3.jar
-rw-r--r-- 1 501 20 331K Oct 3 16:13 datanucleus-appengine-2.1.0-final.jar
-rw-r--r-- 1 501 20 1.6M Oct 3 16:13 datanucleus-core-3.1.0-m5.jar
-rw-r--r-- 1 501 20 112K Oct 3 16:13 geronimo-jpa_2.0_spec-1.0.jar
-rw-r--r-- 1 501 20 5.2M Oct 3 16:13 gwt-servlet.jar
-rw-r--r-- 1 501 20 196K Oct 3 16:13 jdo-api-3.0.1.jar
-rw-r--r-- 1 501 20 7.9K Oct 3 16:13 jsr107cache-1.1.jar
-rw-r--r-- 1 501 20 15K Oct 3 16:13 jta-1.1.jar
В каталоге WEB-INF / lib работает:
for i in *.jar; do echo $i; jar -tf $i | grep Level2; done
выходы:
appengine-api-1.0-sdk-1.7.2.jar
appengine-api-labs.jar
appengine-endpoints.jar
appengine-jsr107cache-1.7.2.jar
asm-4.0.jar
datanucleus-api-jdo-3.1.0-m3.jar
datanucleus-api-jpa-3.1.0-m3.jar
datanucleus-appengine-2.1.0-final.jar
datanucleus-core-3.1.0-m5.jar
org/datanucleus/cache/WeakLevel2Cache.class
org/datanucleus/cache/Level2Cache$PinnedClass.class
org/datanucleus/cache/AbstractLevel2Cache.class
org/datanucleus/cache/SoftLevel2Cache.class
org/datanucleus/cache/Level2Cache.class
org/datanucleus/cache/NullLevel2Cache.class
org/datanucleus/cache/JavaxCacheLevel2Cache.class
geronimo-jpa_2.0_spec-1.0.jar
gwt-servlet.jar
jdo-api-3.0.1.jar
jsr107cache-1.1.jar
jta-1.1.jar
который показывает, что org.datanucleus.cache.JavaxCacheLevel2Cache присутствует в datanucleus-core-3.1.0-m5.jar. Тем не менее, когда я пытаюсь получить доступ к объектам, которые были сохранены до того, как этот кэш был включен, я получаю следующую ошибку на стороне сервера.
org.datanucleus.exceptions.NucleusUserException: Level 2 Cache "javax.cache" is registered to use class "org.datanucleus.cache.JavaxCacheLevel2Cache" yet this is not found. Please check your CLASSPATH and plugin specification.
Далее по трассе стека исключений я нахожу:
Caused by: java.lang.NoClassDefFoundError: javax/cache/Caching
at org.datanucleus.cache.JavaxCacheLevel2Cache.(JavaxCacheLevel2Cache.java:63)
Теперь это понятно, но где я могу найти этот javax.cache.Caching? Какой JAR-файл мне нужно включить в classpath? Беглый поиск в Google не сразу отвечает на мой вопрос.
Благодарю.