Java Tomcat 7 上使用 Kundera JPA 的 Web 应用程序

Java Web Application with Kundera JPA on Tomcat 7

我开发了一个 JAVA Rest Service (JDK 1.8),它使用 Kundera (V3.2) 进行 Cassandra 数据库连接。如果我 运行 我的应用程序在 eclipse 中使用 Tomcat-Server 一切正常。如果我想在另一个 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 文件可能是问题所在,还是我应该搜索其他解决方案?

问题是实体的单独 jar-file。添加 jar-file 标签时,指向实体的 jar,指向 persistence.xml 一切正常。