Spring ベースの Web アプリケーションを Weblogic 10.3.6 で実行しようとしています。このアプリケーションは、データの保存/アクセスに Apache Cassandra バージョン 2.0.7 を使用します。
次のように、persistence.xml ファイルで JPA 2.0 を使用しています。
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
<persistence-unit name="cassandra">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<properties>
<property name="kundera.dialect" value="cassandra"/>
<property name="cql.version" value="3.0.0"/>
<property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.thrift.ThriftClientFactory"/>
<property name="kundera.keyspace" value="abc"/>
<property name="kundera.nodes" value="localhost"/>
<property name="kundera.port" value="9160"/>
<property name="kundera.ddl.auto.prepare" value="validate"/>
</properties>
</persistence-unit>
</persistence>
以下のように commEnv.sh ファイルを変更して、Weblogic 10.3.6 に JPA 2.0 パッチも適用しました。
# Enable JPA2.0 support
PRE_CLASSPATH="${PRE_CLASSPATH}:${MW_HOME}/modules/com.oracle.jpa2support_1.0.0.0_2-1.jar:${MW_HOME}/modules/javax.persistence_1.1.0.0_2-0-0.jar"
export PRE_CLASSPATH
アプリケーションは正常にデプロイされましたが、EntityManager 経由でバックエンドにアクセスしようとすると、次のようなエラーが表示されます。
Caused by: java.lang.NoSuchMethodError: javax.persistence.EntityManagerFactory.getCache()Ljavax/persistence/Cache;
at com.impetus.kundera.persistence.EntityManagerImpl.<init>(EntityManagerImpl.java:128)
at com.impetus.kundera.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:246)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
pom ファイルの関連エントリは次のとおりです。
<dependency>
<groupId>com.impetus.kundera.client</groupId>
<artifactId>kundera-cassandra</artifactId>
<version>2.11</version>
</dependency>
<dependency>
<groupId>com.impetus.kundera.core</groupId>
<artifactId>kundera-core</artifactId>
<version>2.11</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
誰かがここで何が間違っているのかを提案して助けてもらえますか?
よろしく、
アナンド