首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Glassfish:缺少数据源的驱动程序类的名称。

Glassfish:缺少数据源的驱动程序类的名称。
EN

Stack Overflow用户
提问于 2014-10-08 05:07:59
回答 6查看 10K关注 0票数 3

(滚动到末尾,查找可能与此相关的错误。)

这个连接池看起来是正确的,至少ping是成功的,但是EJB模块如何实际引用它呢?

代码语言:javascript
复制
thufir@dur:~$ 
thufir@dur:~$ glassfish-4.1/glassfish/bin/asadmin
Use "exit" to exit and "help" for online help.
asadmin> 
asadmin> list-jdbc-connection-pools
CLI031: Warning: Option "target" is obsolete and will be ignored.
CLI031: Warning: Option "target" is obsolete and will be ignored.
__TimerPool
DerbyPool
SamplePool
connectionPool
legacy_on_glassfish
Command list-jdbc-connection-pools executed successfully.
asadmin> 
asadmin> ping-connection-pool legacy_on_glassfish
Command ping-connection-pool executed successfully.
asadmin> 
asadmin> list-jdbc-resources
jdbc/sample
jdbc/__TimerPool
jdbc/__default
jdbc/local
jdbc/legacy_resource
Command list-jdbc-resources executed successfully.
asadmin> 

(我不确定如何用asadmin输出jdbc连接属性)

使用Netbeans向导,这是生成的persistence.xml文件:

代码语言:javascript
复制
<?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="EnterpriseLegacyJDBC-ejbPU" transaction-type="JTA">
    <jta-data-source>jdbc/legacy_resource</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控制台中,数据源的驱动程序类的名称是什么?

在控制台中查看,Datasource类名为com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource,而驱动程序类名不可编辑:

-------------------------------------bug report------------------------------------------

strayan@netbeans.org 2013-11-25 09:13:49 抱歉,如果您像教程中提到的那样从DataSource IDE创建NetBean时,它会像您所说的那样工作得很好。但是,当选择在IDE外部创建的DataSource (使用GlassFish服务器管理控制台)时,我们会看到错误。

bug.cgi?id=238667#c19

但是,我不确定使用DataSource服务器管理控制台创建的GlassFish意味着什么--只是找不到这个选项。

另见:

http://computingat40s.wordpress.com/how-to-setup-a-jdbc-connection-in-glassfish/

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-11-24 13:31:06

对于PostgreSQL,我也面临着同样的问题,并执行了以下步骤,以便成功地与Netbean进行数据库连接:

  1. 使用管理控制台从GlassFish中删除所有由您创建的连接池和数据源
  2. 右键单击NetBeans中的项目名称.
  3. 选择New->Other->Glassfish->JDBC连接池
  4. 单击Next
  5. 给出泳池的名字。
  6. 使用数据库选择“新配置”。
  7. 从下拉列表中选择Postgres。
  8. 在下一步中,输入以下六个参数及其值:
    • 用户- postgres;
    • DatabaseName -(您的数据库名称);
    • ServerName -本地寄主;
    • PortNumber - 5432;
    • 密码-(postgre密码);
    • URL - jdbc:postgresql://localhost:5432/DBname

  1. 右击项目
  2. 选择New->Other->Glassfish->JDBCResource
  3. 选择,使用现有的JDBC
  4. 选择在前一个项目中创建的池名。
  5. 设置资源名称
  6. 单击Finish

现在,基于这个资源,您可以创建实体和整个EJB,而不存在任何问题。

票数 6
EN

Stack Overflow用户

发布于 2014-10-10 08:07:27

嗯,这似乎是个bug:

omniprof@netbeans.org 2014-05-31 16:59:40 在使用驱动程序时,GlassFish 4.0、NetBeans 8.0和Java1.8也遇到了同样的问题。前面的评论是解决方案。在使用JDBC的附加参数时,请仔细检查参数的长列表,“添加具有值driverClass的属性com.mysql.jdbc.Driver到DataSource连接池附加参数”。有许多项目需要填写。很快就会写博客了。

bug.cgi?id=238667#c19

配置文件在哪里?你怎么看待它?另见:

https://askubuntu.com/questions/534320/jdbc-connection-pool-details-on-glassfish

票数 5
EN

Stack Overflow用户

发布于 2016-10-09 14:52:46

这对我起了作用:

1-确保数据库服务器正在运行

2-确保您的应用服务器没有通过停止GlassFish服务器运行

http://netbeans-org.1045718.n5.nabble.com/The-name-of-the-driver-class-for-the-datasource-is-missing-td5725182.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26249567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档