缺少数据源的驱动程序类的名称(Netbeans + PostgreSql + Glassfish)

时间:2014-04-23 21:22:37

标签: postgresql netbeans jdbc glassfish driver

我正在尝试在Postgres 9.2 db和Glassfish 4服务器上使用Netbeans 8开发EJB应用程序。

在glassfish管理面板中创建连接池和JDBC资源后,我无法使用数据源添加实体。 Netbeans仍然给我一个错误:

  

缺少数据源的驱动程序类的名称

我已经尝试过向项目中添加库了。我复制了postgresql-9.2-1002.jdbc4.jar和postgresql-9.2-1002.jdbc3.jar文件 C:\Program Files\glassfish-4.0\glassfish\domains\domain1\lib folder

屏幕截图:http://imageshack.com/a/img843/6884/w3ko.png

如果我使用之前创建的连接(在NB服务/数据库中)创建实体,它可以工作,但任何查询后的结果集都是空的。有什么想法吗?

这是我创建的连接池:http://imageshack.com/a/img838/8286/bkw8.png

这是我的persistence.xml:

<?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="Esempio-ejbPU" transaction-type="JTA">
    <jta-data-source>try_</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>
  </persistence-unit>
</persistence>

9 个答案:

答案 0 :(得分:9)

道歉直截了当,但我相信在这种特殊情况下,你都错了。应该做的是:

  • 转到Glassfish服务器管理面板(链接应如下所示:http://localhost:4848/common/index.jsf(在“其他属性”选项卡下)
    • 点击Netbeans
    • 中的服务
    • 点击服务器
    • 右键单击您的服务器名称[出现弹出式上下文菜单]
    • 单击“查看域管理控制台”[注意:您的服务器必须正在运行才能看到该功能。如果服务器正在运行,则会自动启动浏览器选项卡。如果您看到指向服务器实例右侧右侧的绿色箭头,则表示您的服务器正在运行]
  • 点击资源
  • 点击 JDBC
  • 单击 JDBC连接池
  • 通过单击按钮添加属性上的每次添加以下属性(选择池名称并进行编辑后):

    • driverClass :com.mysql.jdbc.Driver
    • 网址:jdbc:mysql:// localhost / your_database_name
    • 密码:your_password到数据库管理系统
    • serverName :localhost或your_server_name
    • 用户:root或your_username以访问数据库管理系统
    • databaseName :your_database_name
  • 设置 JDBC资源[jdbc / your_pool_name]

  • 指向您刚刚设置的特定连接池,方法是在下拉框中选择它。

保存所有内容(该按钮通常位于Internet浏览器的右上角)不要忘记JDBC资源始终连接到连接池。因此,请确保适合您。它们,JDBC连接池和JDBC资源通常位于服务器管理面板左窗格菜单中的JDBC下。 回到你正在做的事情,然后再试一次。另请注意,这适用于MySQL数据库管理系统。如果使用其他DBMS,您可能需要更改驱动程序类以及URL。 您可以在YouTube上找到更多相关信息[http://www.youtube.com/]

我相信这就是答案。

答案 1 :(得分:2)

对我来说,问题是我向Glassfish添加了一个新的JDBC驱动程序JAR文件,但我没有将它添加到NetBeans。

第一步是将JAR文件复制到NetBean的EXT文件夹。对我来说,该文件夹是: “C:\ Program Files \ NetBeans 8.0.1 \ ide \ modules \ ext”

接下来,我们需要添加JDBC驱动程序,如下所述:

  • 在NetBeans中,选择Window&gt; “服务”菜单选项,用于将“服务”选项卡添加到资源管理器面板。
  • 展开“数据库”树节点
  • 右键单击“Drivers”树节点,然后选择“New Driver ...”
  • 在“新建JDBC驱动程序”窗口中,按“添加...”,打开一个显示“选择驱动程序”的对话框。
  • 导航到您复制JAR文件的EXT文件夹,然后选择JAR文件。
  • 按OK。
  • 新驱动程序将添加到列表中。

当我尝试创建“来自数据库的实体类”时,我在选择连接时仍遇到问题。在尝试了各种对我有用的事情之后:

  • 再次打开数据库树节点并删除每个数据库连接。
  • 返回“项目”选项卡,完成创建“数据库实体类”的步骤。
  • 出现对话框时,在下拉列表中选择“新数据源”。
  • 选择驱动程序,然后输入数据库的信息。
  • 重新创建连接后,我可以从选定的数据库表中创建Entity类。
祝你好运!

答案 2 :(得分:1)

我这样解决了这个问题:

  1. 删除glassfish中的数据源。
  2. 在Netbeans中创建连接数据源(选项卡服务 - &gt;数据库)
  3. 创建企业项目
  4. 从数据库创建实体类
  5. 执行向导
  6. 从NetBeans
  7. 在glassfish中部署项目
  8. 进入Glassfish管理控制台并检查参考资料中创建的数据源 - &gt; JDBC(必须创建一个池和数据源)。

答案 3 :(得分:1)

Steps in Netbeans:
Go To-->Service Tab-->Right Click on Drivers-->New Driver--> Add your driver jar file here

Netbeans自动从JAR文件填充驱动程序详细信息。选中 Driver Class 值,该值将在Glassfish服务器连接池中使用。

Steps in Glassfish:

转到Glassfish管理面板
在JDBC连接池中,添加属性driverClass并粘贴在上一步中通过Netbeans Drivers选项卡注册的 Driver Class 的值。

答案 4 :(得分:0)

我遇到了同样的问题,所以:

  • 首先,这不是Jboss或Glassfish的问题。它是Netbeans或Eclipse。

  • 要解决此问题,请执行以下操作:

    1. 删除所有连接(在Netbeans中:从“服务”选项卡断开连接,然后左键单击“删除”)
    2. 再次重新创建连接(在Netbeans中:从“服务”选项卡,然后在“数据库”中,在“新建连接向导”中左键单击“新建连接”,选择连接类型后,重点关注JDBC URL并从独立复制过去。然后单击完成)

答案 5 :(得分:0)

将驱动程序jar文件添加到&#34; {$ installation_folder} \ NetBeans 8.0.1 \ ide \ modules \ ext&#34;为我解决了这个问题

答案 6 :(得分:0)

在我的情况下,我必须转到glassfish管理面板并将Derby连接池的驱动程序类(在JDBC资源下)更改为“ org.apache.derby.jdbc.ClientDataSource”

答案 7 :(得分:-1)

解决:这是一个连接池问题。在glassfish管理面板中创建一个驱动程序我没有遇到任何问题。

答案 8 :(得分:-1)

在连接池属性中,在URL属性中不要忘记“localhost”