当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.ClassNotFoundException:org。冬眠收集内部的PersistentBag-找不到我要找的类[重复]

彭海阳
2023-03-14

我是JPA和Hibernate的新手,所以我在typequery方面遇到了一些问题。我有一个函数可以接收字符串和“Departento”的名称,并检索与之关联的“Departento”的对象(“Carrera”)。在sqlDevelop中我没有问题,但在typequery中它变得有点麻烦。我确信我的查询的语法是错误的,但我不知道如何修复。如果有人能帮助我,我将不胜感激。

主顾普拉巴。爪哇:

public class ClientePrueba {
    public static void main(String[] args) throws NamingException {
        DepartamentosBeanRemote departamentosBean = (DepartamentosBeanRemote) InitialContext.doLookup("EjemploEJB/DepartamentosBean!com.servicios.DepartamentosBeanRemote");
        MateriasBeanRemote materiasBean = (MateriasBeanRemote) InitialContext.doLookup("EjemploEJB/MateriasBean!com.servicios.MateriasBeanRemote");
        CarrerasBeanRemote carrerasBean = (CarrerasBeanRemote) InitialContext.doLookup("EjemploEJB/CarrerasBean!com.servicios.CarrerasBeanRemote");

        System.out.println("Obtengo todas las carreras del departamento MATEMATICAS");
        List<Carrera> carreras = carrerasBean.obtenerPorDepartamento("MATEMATICAS");
        for (Carrera car : carreras) {
            System.out.println(car.getNombre());
        }       
    }
}

CarrerasBean.java

/**
 * Session Bean implementation class CarrerasBean
 */
@Stateless
public class CarrerasBean implements CarrerasBeanRemote {
    @PersistenceContext
    private EntityManager em;

    /**
     * Default constructor. 
     */
    public CarrerasBean() {
        // TODO Auto-generated constructor stub
    }

    @Override
    public List<Carrera> obtenerPorDepartamento(String departamento) {
        TypedQuery<Carrera> query = em.createQuery("SELECT c FROM Carrera c WHERE c.departamento.nombre = :depto", Carrera.class)
                .setParameter("depto", departamento);
        return query.getResultList();
    }
}

错误:

线程“main”javax中出现异常。ejb。EJBException:java。lang.ClassNotFoundException:org。冬眠收集内部的组织的PersistentBag。jboss。ejb。客户ejbindhandler。doInvoke(ejbinactionhandler.java:236)位于org。jboss。ejb。客户ejbindhandler。doInvoke(ejbinactionhandler.java:181)位于org。jboss。ejb。客户ejbindhandler。在com上调用(ejbinationhandler.java:144)。太阳代理$Proxy4。ObtenerporDepartmento(未知来源)位于com。客户。主顾普拉巴。main(ClientePrueba.java:130)由:java引起。lang.ClassNotFoundException:org。冬眠收集内部的java的PersistentBag。网1美元。在java上运行(未知源代码)。网1美元。在java上运行(未知源代码)。安全访问控制器。java上的doPrivileged(本机方法)。网URLClassLoader。java上的findClass(未知源代码)。lang.ClassLoader。sun的loadClass(未知源)。杂项。Launcher$AppClassLoader。java上的loadClass(未知源代码)。lang.ClassLoader。java上的loadClass(未知源代码)。朗,同学们。java上的forName0(本机方法)。朗,同学们。forName(未知来源)位于org。jboss。编组。抽象类解析器。org上的loadClass(AbstractClassResolver.java:131)。jboss。编组。抽象类解析器。resolveClass(AbstractClassResolver.java:112)位于org。jboss。编组。河RiverUnmarshaller。doReadClassDescriptor(RiverUnmarshaller.java:949)位于org。jboss。编组。河RiverUnmarshaller。doReadNewObject(RiverUnmarshaller.java:1256)位于org。jboss。编组。河RiverUnmarshaller。doReadObject(RiverUnmarshaller.java:276)位于org。jboss。编组。河RiverUnmarshaller。doReadObject(RiverUnmarshaller.java:224)位于org。jboss。编组。河RiverUnmarshaller。readFields(RiverUnmarshaller.java:1746)位于org。jboss。编组。河RiverUnmarshaller。doInitSerializable(RiverUnmarshaller.java:1659)位于org。jboss。编组。河RiverUnmarshaller。doReadNewObject(RiverUnmarshaller.java:1286)位于org。jboss。编组。河RiverUnmarshaller。doReadObject(RiverUnmarshaller.java:276)位于org。jboss。编组。河RiverUnmarshaller。doReadObject(RiverUnmarshaller.java:224)位于org。jboss。编组。河RiverUnmarshaller。doReadCollectionObject(RiverUnmarshaller.java:180)位于org。jboss。编组。河RiverUnmarshaller。readCollectionData(RiverUnmarshaller.java:777)位于org。jboss。编组。河RiverUnmarshaller。doReadObject(RiverUnmarshaller.java:653)位于org。jboss。编组。河RiverUnmarshaller。doReadObject(RiverUnmarshaller.java:209)位于org。jboss。编组。抽象目标输入。org上的readObject(AbstractObjectInput.java:41)。jboss。ejb。客户远程处理。MethodInvocationResponseHandler$MethodInvocationResultProducer。getResult(MethodInvocationResponseHandler.java:103)位于org。jboss。ejb。客户ejbclientContext。getResult(EJBClientInvocationContext.java:276)位于org。jboss。ejb。客户EJBObjectInterceptor。handleInvocationResult(EJBObjectInterceptor.java:64)位于org。jboss。ejb。客户ejbclientContext。getResult(EJBClientInvocationContext.java:290)位于org。jboss。ejb。客户EJBHomeInterceptor。handleInvocationResult(EJBHomeInterceptor.java:88)位于org。jboss。ejb。客户ejbclientContext。getResult(EJBClientInvocationContext.java:290)位于org。jboss。ejb。客户交易接收器。handleInvocationResult(TransactionInterceptor.java:46)位于org。jboss。ejb。客户ejbclientContext。getResult(EJBClientInvocationContext.java:290)位于org。jboss。ejb。客户接收截获器。handleInvocationResult(ReceiverInterceptor.java:129)位于org。jboss。ejb。客户ejbclientContext。getResult(EJBClientInvocationContext.java:265)位于org。jboss。ejb。客户ejbclientContext。在org上等待响应(EJBClientInvocationContext.java:453)。jboss。ejb。客户ejbindhandler。doInvoke(ejbindocationhandler.java:202)。。。还有4个

共有1个答案

叶国兴
2023-03-14

客户端类路径中似乎没有hibernate jars。我指的是这种依赖:

<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>

检查客户机类路径并添加这个hibernate jars。

 类似资料:
  • 在我的jax rs上使用hibernate时,出现以下错误: HTTP错误500 访问 /services/datesTest.问题原因: java.lang.连接器上的异常。Connector.buildSessionFactory(Connector.java:32)连接器。连接器处的Connector.getSessionFactory(Connector.java:37)。Connecto

  • 我正在使用Intellij IDEA。 这是我的代码: 问题是,当我运行它时,它会工作。但是,Intellij找不到Scanner类。这是红色的下划线。 如何解决这个问题?

  • 问题内容: 我是EAR的新手。我已经开发了一个功能相互依赖的Web模块和ejb模块。为此,我试图将它们配置在EAR中。我将web和ejb模块都映射到EAR,可以看到application.xml为 但是当我尝试执行EAR时,我的服务器抛出以下异常 从上面我可以理解,EAR无法定位EJB模块中存在的类,因此引发异常。我正在使用WildFLy 10服务器和Eclipse IDE。 问题答案: EAR文

  • 我有一个JPA@实体'recipestepbo',它使用@转换器: 我做错了什么?

  • 但是当我尝试执行EAR时,我的服务器抛出异常 从上面我可以理解的是,EAR无法定位EJB模块中存在的类,因此抛出异常。我使用的是Wildfly10服务器和eclipse IDE。

  • 我有两个类,“article”包含对“surchargegroup”的@manytoone引用,该“surchargegroup”指定了该文章的附加费。 另一个类“SurchargeGroup”包含一个父对象引用,它可以将附加费继承到“SurchargeGroup”,如果没有设置,则任何父对象都不提供附加费的情况是不可能的。 我现在的问题是,如果我调用“getSurcharge()”方法,我会得到