Datanucleus JPA 2 Level 2 caché en Google AppEngine

¿Qué me falta en la siguiente configuración que mi caché de Datanucleus JPA 2 Nivel 2 no está utilizando el servicio Memcache de Google App Engine? Estoy utilizando el SDK de GAE 1.7.2.

En la persistencia.xml:

<persistence-unit name="transactions-optional">
    <provider>org.datanucleus.api.jpa.PersistenceProviderImpl</provider>
    <properties>
        <property name="datanucleus.NontransactionalRead" value="true"/>
        <property name="datanucleus.NontransactionalWrite" value="true"/>
        <property name="datanucleus.ConnectionURL" value="appengine"/>
        <property name="datanucleus.appengine.datastoreReadConsistency" value="EVENTUAL" />
        <property name="javax.persistence.query.timeout" value="5000" />
        <property name="datanucleus.datastoreWriteTimeout" value="10000" />
        <property name="datanucleus.singletonEMFForName" value="true"/>
        <property name="datanucleus.cache.level2.cacheName" value="someName"/>
        <property name="datanucleus.cache.level2.type" value="javax.cache"/>
    </properties>
</persistence-unit>

Las anotaciones de entidad contienen:

@Entity
@Cacheable(true)

Mi WEB-INF / lib tiene este aspecto:

-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

En el directorio WEB-INF / lib, ejecutando:

for i in *.jar; do echo $i; jar -tf $i | grep Level2; done

rendimientos

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

que muestra que org.datanucleus.cache.JavaxCacheLevel2Cache está presente en datanucleus-core-3.1.0-m5.jar. Sin embargo, cuando intento acceder a las entidades que se han conservado antes de habilitar esta memoria caché, aparece el siguiente error en el lado del servidor.

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.

Más abajo en el seguimiento de la pila de excepciones, encuentro:

Caused by: java.lang.NoClassDefFoundError: javax/cache/Caching
    at org.datanucleus.cache.JavaxCacheLevel2Cache.<init>(JavaxCacheLevel2Cache.java:63)

Ahora, eso está claro, pero ¿dónde puedo encontrar este javax.cache.Caching? ¿Qué JAR debería necesitar incluir en el classpath? Una búsqueda rápida en Google no responde inmediatamente a mi pregunta.

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta