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

无法通过PostgreSQL获取数据源。不能使用JPA EntityManager

朱梓
2023-03-14

我有下一个问题:

<?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>
@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:Exception[EclipseLink-7060](Eclipse Persistence Services-2.5.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.sun.corba.ee.impl.presentation.rmi.jndistateFactoryImpl,java.naming.factory.url.pkgs=com.sun.enterprise.naming}中查找“

共有1个答案

胡浩瀚
2023-03-14

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

或者,您需要使用netbeans中的向导创建持久化单元,进入菜单to File>New File,然后在左侧框中选择persistence,在右侧框中选择persistence unit。

 类似资料:
  • 我已经使用netbeans(8.0.2)中的持久性单元向导创建了数据源。但在glassfish上运行项目时,它找不到我的数据源。 例外情况 我正在使用EclipseLink JPA 2.1

  • 我有一个名为appconfig.XML的spring XML配置文件,它包含一个数据源bean和另一个将数据源作为参数传递给它的JDBCtemplate: 我得到一个错误: 线程“main”org.springframework.beans.factory.BeanCreationException中出现异常:创建文件[appconfig.xml]中定义的名为“jdbcTemplate”的bean

  • 我如何从我检查的源(如图像所示)中刮取输入标记的值属性中的数据? 我试过使用BeautifulSoup和Selenium,但它们对我都不起作用。 部分代码如下: 这将返回错误。 事实上,当我尝试时,很多源代码数据似乎丢失了。我怀疑这可能是与JS相关的问题,但是Selenium--它大部分时间都在呈现JS--在这个站点上对我不起作用。知道为什么吗? 我也试过这些: 返回,而返回源,其中大部分输入标记

  • 我试图创建一个chatbot,它向spring-boot应用程序发出get请求,而spring boot应用程序向Dialogflow V2发出API调用。我试图通过GRPC访问Dialogflow V2 API。我已经创建了一个服务帐户和导出服务帐户密钥文件,并将其添加到spring-boot应用程序中。 当我试图从spring-boot应用程序向dialogflow发送请求时,我出现了以下错误

  • 我是新来的和学习它我想从Imdb站点/特定的电影链接提取评级,并发现我将能够从div与class=,因此我写了以下内容代码: 很奇怪,我没有得到任何数据,因为我能够在几周前得到评级数据。是div与class=存在于页面/url上。

  • 问题内容: 我最近开始学习Hibernate技术,不得不使用Hibernate从数据库中获取数据。问题是我只能通过SSH隧道连接到数据库。我可以在文件中使用任何属性来解决此问题吗?或者,您可以建议另一种新手可以理解的方式。 问题答案: 也许使用Jsch。一些示例可以为您提供解决之道。 另一种方法是使用HTTP代理处理程序和端口转发功能来实现自己的SSH SocketFactory。起点可以是: 您