我正试图在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的值。
我这样解决了这个问题:
- 删除glassfish中的数据源
- 在Netbeans中创建连接数据源(选项卡服务-->数据库)
- 创建企业项目
- 从数据库创建实体类
- 执行向导
- 从NetBeans在glassfish中部署项目
- 进入Glassfish管理控制台,检查Resources-->JDBC中创建的数据源(必须创建一个池和数据源)
已解决:这是一个连接池问题。在glassfish管理面板中创建一个驱动程序,我没有更多的问题。
将驱动程序jar文件添加到"{$installation_folder}\NetBeans 8.0.1\ide\modules\ext"中为我修复了问题
在连接池属性中,在URL属性中不要忘记"localhost"
-
首先,这不是Jboss或Glassfish的问题。它是Netbeans或Eclipse。
-
其次要解决这个问题,请执行以下操作:
- 删除所有连接(在Netbeans中:从"服务"选项卡先断开连接,然后左键单击"删除")
- 再次重新创建连接(在Netbeans中:从"服务"选项卡,然后是"数据库",左键单击"新建连接"。在"新建连接向导"中,选择连接类型后,将重点放在JDBC URL上,然后从单机复制过去。然后完成)
在我的案例中,我不得不转到glassfish管理面板,将Derby连接池的驱动程序类(在JDBC资源下)更改为"org.apache.Derby.JDBC.ClientDataSource"