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



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

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

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

我已经尝试将库添加到项目中。我在CCD_ 1。

屏幕截图: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>

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

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

    • 驱动程序类:com.mysql.jdbc.Driver
    • URL:jdbc:mysql://localhost/your_database_name
    • 密码:数据库管理系统的密码
    • serverName:localhost或your_server_name
    • user:root或your_username访问数据库管理系统
    • 数据库名称:your_database_name
  • 设置JDBC资源[JDBC/your_pool_name]

  • 通过在下拉框中选择,指向您刚刚设置的特定连接池

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

我相信这就是答案。

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

第一步是将JAR文件复制到NetBean的EXT文件夹中。对我来说,那个文件夹是:"C:\Program Files\NetBeans 8.0.1[ide\modules\ext"

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

  • 在NetBeans中,选择窗口>服务菜单选项,将服务选项卡添加到资源管理器面板中
  • 展开"数据库"树节点
  • 右键单击"驱动程序"树节点,然后选择"新建驱动程序…"
  • 在"New JDBC Driver"窗口中,按"Add…",会打开一个对话框,显示"Select Driver"
  • 导航到复制JAR文件的EXT文件夹,然后选择JAR文件
  • 按OK
  • 新的驱动程序将被添加到列表中

当我试图从数据库创建一个"实体类"时,当我选择连接时仍然遇到了问题。在尝试了各种事情之后,对我有效的是:

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

祝你好运!

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

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

Steps in Glassfish:

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

我这样解决了这个问题:

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

已解决:这是一个连接池问题。在glassfish管理面板中创建一个驱动程序,我没有更多的问题。

将驱动程序jar文件添加到"{$installation_folder}\NetBeans 8.0.1\ide\modules\ext"中为我修复了问题

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

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

  • 其次要解决这个问题,请执行以下操作:

    1. 删除所有连接(在Netbeans中:从"服务"选项卡先断开连接,然后左键单击"删除")
    2. 再次重新创建连接(在Netbeans中:从"服务"选项卡,然后是"数据库",左键单击"新建连接"。在"新建连接向导"中,选择连接类型后,将重点放在JDBC URL上,然后从单机复制过去。然后完成)

在我的案例中,我不得不转到glassfish管理面板,将Derby连接池的驱动程序类(在JDBC资源下)更改为"org.apache.Derby.JDBC.ClientDataSource"

相关内容

  • 没有找到相关文章

最新更新