【问题标题】:Cannot acquire data source whit PostgreSql. Can't use JPA EntityManager无法通过 PostgreSql 获取数据源。无法使用 JPA EntityManager
【发布时间】:2015-05-26 01:22:29
【问题描述】:

我有下一个问题:

我正在使用 JPA 和 Restfull whit netbeasn 和 postgres 做一个项目,我有以下持久性

<?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="PruebaPersitenciaPU" transaction-type="JTA">
    <jta-data-source>data_cotratacion</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
  </persistence-unit>

还有下面使用EntityManager的代码:

@GET
    public String crearPersona(
            @QueryParam("id") String id,
            @QueryParam("name") String name,
            @QueryParam("gender") String gender,
            @QueryParam("date") String date){
        Persona p = new Persona();
        p.setId(id);
        p.setName(name);
        p.setGender(gender);
        p.setDate(stringToDate(date));
        try {        
            EntityManagerFactory emf = Persistence.createEntityManagerFactory("PruebaPersitenciaPU");
            EntityManager em = emf.createEntityManager();
            
            em.getTransaction().begin();
            em.persist(p);
            em.getTransaction().commit();
        
            return "Usuario Creado "+id;
        } catch (Exception e) {
            return "Usuario no creado error: "+e;
        }
    }

但是试试这个会给我这个错误:

Usuario no creado 错误:javax.persistence.PersistenceException:异常 [EclipseLink-7060](Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd):org.eclipse.persistence.exceptions.ValidationException 异常描述:无法获取数据源[data_cotratacion]。内部异常:javax.naming.NamingException:在 SerialContext [myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com 中查找“data_cotratacion”失败.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [根异常是 javax.naming.NameNotFoundException: data_cotratacion not found]

【问题讨论】:

    标签: java postgresql jpa entitymanager


    【解决方案1】:

    听起来好像没有配置名称为 data_cotratacion 的 JDBC 数据源。您需要在应用服务器上配置此 JDBC 资源。

    或者你需要使用netbeans中的向导创建你的持久化单元进入菜单到文件>新建文件然后在左边的框中选择持久性,在右边的框中选择持久性单元。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-08
      • 2018-03-21
      • 2019-11-04
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      相关资源
      最近更新 更多