我开发了一个JAVA服务(JDK1.8),它使用Kundera (V3.2)连接Cassandra数据库。如果我在eclipse中使用Tomcat运行我的应用程序,一切都很好。如果我想在另一个Tomcat 7上部署.war文件,由于以下错误,服务器无法启动:
com.impetus.kundera.loader.MetamodelLoaderException: Error while retreiving and storing entity metadata, Caused by : .在搜索了一些解决方案之后,我发现问题可能是,我的实体位于一个分离的jar中(这是war文件中的一个依赖项),而不是应用程序本身。如果这是问题所在,我必须将<jar-file>标记添加到persistence.xml (https://github.com/impetus-opensource/Kundera/issues/90)中。
我的persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="cassandra_pu" transaction-type="RESOURCE_LOCAL">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<class>com.asdf.booking.beans.kundera.Account</class>
<class>com.asdf.booking.beans.kundera.AccountCard</class>
<class>com.asdf.booking.beans.kundera.AccountType</class>
<class>com.asdf.booking.beans.kundera.Booking</class>
<class>com.asdf.booking.beans.kundera.Circle</class>
<class>com.asdf.booking.beans.kundera.AccountSequence</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="kundera.nodes" value="1.1.1.1" />
<property name="kundera.port" value="9160" />
<property name="kundera.keyspace" value="booking" />
<property name="kundera.dialect" value="cassandra"/>
<property name="sessionless" value="false" />
<property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.thrift.ThriftClientFactory" />
<property name="kundera.annotations.scan.package" value="com.asdf.booking.kundera.beans" />
<property name="kundera.ddl.auto.prepare" value="update" />
</properties>
</persistence-unit>
</persistence>单独的jar文件可能是问题所在,还是应该寻找其他解决方案?
发布于 2016-01-07 11:20:12
问题是实体的单独jar文件。当将jar-file标记(指向实体的jar )添加到persistence.xml时,一切都正常。
https://stackoverflow.com/questions/34652032
复制相似问题