Java 为什么可以';我不能同时使用JPA、数据库和primefaces吗?

Java 为什么可以';我不能同时使用JPA、数据库和primefaces吗?,java,database,jpa,jakarta-ee,primefaces,Java,Database,Jpa,Jakarta Ee,Primefaces,我有一个用户类,which是JPA的数据库@Entity 我有一个UserServiceImpl类,它有这个getAllUser()方法(下面的异常:UserServiceImpl.java:16=第二行): 我认为,问题在于托管bean不能使用其他类。这是一个例外: java.lang.NoClassDefFoundError: javax/persistence/Persistence at hu.pte.admin.services.EMService.getEntityManager(E

我有一个用户类,which是JPA的数据库
@Entity

我有一个UserServiceImpl类,它有这个
getAllUser()
方法(下面的异常:UserServiceImpl.java:16=第二行):

我认为,问题在于托管bean不能使用其他类。这是一个例外:

java.lang.NoClassDefFoundError: javax/persistence/Persistence
at hu.pte.admin.services.EMService.getEntityManager(EMService.java:12)
at hu.pte.admin.services.usersmodul.UserServiceImpl.<init>(UserServiceImpl.java:16)
at hu.pte.admin.managedbeans.UserBean.<init>(UserBean.java:19)
这是users.xhtml(detail),我想在primefaces代码中使用托管bean(userBean):

<p:dataTable var="user" value="#{userBean.users}" paginator="true" rows="10"
        selection="#{userBean.selectedUser}" selectionMode="single" 
        onRowSelectUpdate="display" rowsPerPageTemplate="5,10,15">
        <f:facet name="header">The Users</f:facet>

        <p:column sortBy="#{user.id}" filterBy="#{user.id}">
            <f:facet name="header">
                <h:outputText value="ID" />
            </f:facet>
            <h:outputText value="#{user.id}" />
        </p:column>

用户

persistence.xml具有连接到我的数据库的代码。请帮帮我,我在网上找不到任何样本,它们都是这样使用JPA和PrimeFaces的!谢谢

例外情况清楚地告诉您:

java.lang.NoClassDefFoundError: javax/persistence/Persistence

未找到
javax.persistence.persistence
class的类定义。我假设您正在运行JavaSESDK。我建议下载并运行包含
Persistence
API的。

异常清楚地显示您:

java.lang.NoClassDefFoundError: javax/persistence/Persistence

未找到
javax.persistence.persistence
class的类定义。我假设您正在运行JavaSESDK。我建议下载并运行包含
Persistence
API的。

除了NoClassDefFoundError之外,您的
getAllUsers
方法中还有一个问题:

List<User> users = (List<User>) q.getSingleResult();
List users=(List)q.getSingleResult();

如果查询结果是唯一的,则调用
getSingleResult
将返回单个用户实体,否则将引发异常。要检索用户列表,您需要调用
getResultList

除了NoClassDefFoundError之外,您的
getAllUsers
方法中还有一个问题:

List<User> users = (List<User>) q.getSingleResult();
List users=(List)q.getSingleResult();

如果查询结果是唯一的,则调用
getSingleResult
将返回单个用户实体,否则将引发异常。要检索用户列表,您需要调用
getResultList

是的,我安装了,并且得到了相同的异常:)我告诉您,问题在于UserBean的构造函数中的声明。不需要JEE,只需要“persistence api.jar”。为什么下载XXX Mb而110Kb就可以了?从@victorio获取geronimo-jpa_2.0_spec-1.0.jar,您的
UserBean
构造函数没有问题。您只需要包含@DataNucleus建议的持久性API的jar。只需在web服务器库文件夹中部署jar即可。哦!!有办法!现在我有了这个异常:com.sun.faces.mgbean.ManagedBeanCreationException:Cant实例化类:hu.pte.admin.managedbeans.UserBean.newexception=New question;-)是的,我安装了,并且得到了相同的异常:)我说,问题在于UserBean的构造函数,声明中。好吧,不需要JEE,只需要“persistenceAPI.jar”。为什么下载XXX Mb而110Kb就可以了?从@victorio获取geronimo-jpa_2.0_spec-1.0.jar,您的
UserBean
构造函数没有问题。您只需要包含@DataNucleus建议的持久性API的jar。只需在web服务器库文件夹中部署jar即可。哦!!有办法!现在我有了这个异常:com.sun.faces.mgbean.ManagedBeanCreationException:Cant实例化类:hu.pte.admin.managedbeans.UserBean.newexception=New question;-)谢谢你是对的!我在我的web服务器库文件夹中部署了geronimo-jpa_2.0_spec-1.0.jar,现在我有了一个新的异常:
com.sun.faces.mgbean.ManagedBeanCreationException:Cant实例化类:hu.pte.admin.managedbeans.UserBean。
你能帮我吗?@victorio:请创建一个新问题并包含完整的堆栈跟踪。谢谢!!你是对的!我在我的web服务器库文件夹中部署了geronimo-jpa_2.0_spec-1.0.jar,现在我有了一个新的异常:
com.sun.faces.mgbean.ManagedBeanCreationException:Cant实例化类:hu.pte.admin.managedbeans.UserBean。
你能帮我吗?@victorio:请创建一个新问题并包含完整的堆栈跟踪。
List<User> users = (List<User>) q.getSingleResult();