gpt4 book ai didi

java - 找不到该类的实体元数据

转载 作者:行者123 更新时间:2023-11-28 22:22:28 24 4
gpt4 key购买 nike

我又遇到了同样的问题......

我正在尝试在我的 Cassandra 数据库中使用 Kundera (Cassandra ORM) 查询,这个查询在其他项目中有效,但是当我尝试在 webapp 中执行它时(使用 tomcat 6.0),我得到了这个错误:

com.impetus.kundera.metadata.KunderaMetadataManager  - No Entity metadata found for the class

=> JavaNullPointerException。

但是当我从我的项目中离开 persistence.xml 时,我得到了另一个错误。 (找到 NoPersistence.xml 之类的……)

因此,我的项目找到了 Persistence.xml,但没有找到我的实体类:fileCassandra。

你可以看到我的persistence.xml:

   <?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">
<!-- 192.168.3.107 -->
<persistence-unit name="cassandra_pu">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<class>net.***.common.db.***.FileCassandra</class>

<properties>
<property name="kundera.nodes" value="localhost"/>
<property name="kundera.port" value="9160"/>
<property name="kundera.keyspace" value="KunderaExamples"/>
<property name="kundera.dialect" value="cassandra"/>
<property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.pelops.PelopsClientFactory" />
<property name="kundera.cache.provider.class" value="com.impetus.kundera.cache.ehcache.EhCacheProvider"/>
<!-- <property name="kundera.cache.config.resource" value="/ehcache-test.xml"/> -->
</properties>
</persistence-unit>
</persistence>

net..common.db..FileCassandra 我必须替换为 * 因为它是我公司的名称 ;)

相同的方法(包括 EntityManager)在其他项目的 junit 中工作,当我在 Tomcat 中构建我的项目时,出现此错误 ...

最佳答案

当您的类路径中有同一个类的多个条目时,就会发生这种情况。

拥有实体的理想位置最接近加载 kundera 核心和客户端(HBase、Cassandra 等)的同一类加载器。

例如,如果这些 kundera 文件位于 WEB-INF/lib 下,您宁愿将您的实体放在应用程序下,就像 kundera 文件位于应用程序 lib 文件夹中一样,最好将您的实体捆绑在一个 jar 中并将它们放入那里(并删除您应用中的实体)。

关于java - 找不到该类的实体元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com