2

我正在使用一台全新的开发 PC,需要测试一个在本地 GlassFish 服务器 3.1.2 上运行的个人应用程序,并且应该连接一个名为“funkOneDB”的本地 SQL 数据库(我的 IDE 是 NetBeans 7.2.1)。但是我无法让 GlassFish 服务器与数据库连接,并且问题似乎与 GlassFish 服务器目录中的 SQL 驱动程序(位置)有关(几行中的更多问题细节)。

我相当肯定我在 GlassFish 服务器上正确设置了相关的 JDBC 资源和连接池(因为我模仿了已经存在的设置并且在另一台正在开发的 PC 上正常工作)。

资源细节是:

  • jndi 名称:jdbc/FunkResource
  • 池名称:FunkPool

(最重要的)池细节是:

  • 池名称:FunkPool
  • 资源类型:javax.sql.Datasource
  • 数据源类名:com.mysql.jdbc.jdbc2.optional.MysqlDataSource
  • 附加属性对应于应用程序的 XML GlassFish 资源中的细节(用户名、密码、url 等;没有问题)

我首先将必要的 SQL 驱动程序放在 GlassFish Server 的目录中,即 ..\GlassFish3\GlassFish\domains\domain1\lib\ext 中的文件 mysql-connector-java-5.1.18-bin.jar。

然而,当我从 GlassFish 服务器上的 JDBC 池“FunkPool”执行 ping 测试时,我收到以下错误:

FunkPool 的 Ping 连接池失败。WEB9031:WebappClassLoader 无法加载资源 [com.mysql.jdbc.SQLError],因为它尚未启动,或已停止 请查看 server.log 以获取更多详细信息。

在 server.log 中,我只找到以下额外的日志记录异常和失败信息:

(i)为池 [ FunkPool ] 创建非池化 [test] 连接时出现异常,WEB9031:WebappClassLoader 无法加载资源 [com.mysql.jdbc.SQLError],因为它尚未启动或已停止

(ii) RestResponse.getResponse() 给出失败。端点=' http://localhost:4848/management/domain/resources/ping-connection-pool.json';attrs = '{id=FunkPool}'

但是请注意,当我通过 IDE NetBeans ping 数据库 funkOneDB 时jdbc:mysql://localhost:33066/funkOneDB,它是成功的。如前所述,我用于此基于 IDE 的 ping 的凭据和其他数据与我在 JDBC 连接池中使用的数据相同。

我也在stackoverflow上搜索了一些问题。我确实发现有些人在谈论它,比如

Glassfisch MySQL ping ERROR(没有人回答),或

努力在 Glassfish 上创建 MySQL 连接池(尝试了该解决方案,即将 SQL 驱动程序放在 ..\GlassFish3\GlassFish\domains\domain1\lib\ 中,但这会产生其他错误,即使在重新启动 Glassfish 服务器后也是如此),或者

GlassFish 未加载连接器 (即使尝试过此解决方案,也没有成功)。

有人可以帮我解决这个问题吗?提前谢谢了!

亲切的问候,

亨氏

4

3 回答 3

0

将 mysql 驱动程序放在项目的 lib 文件夹中。然后进行清理和构建。让 netbeans 直接与您的数据库通信也很有帮助。这将允许您直接从 IDE 查看数据库结构和数据库的内容。如需帮助将 MySQL 与 netbeans 集成,请查看此处:netbeans.org/kb/docs/ide/mysql.html

于 2013-06-13T14:48:37.840 回答
0

我的朋友,我也有同样的例外:

RestResponse.getResponse() 给出失败。端点 = ' http://localhost:4848/management/domain/resources/ping-connection-pool.json '; attrs = '{id=FunkPool}'

我的错误的原因是,我输入了错误的凭据。在您的客户端数据库应用程序(例如 SQL Developer)中检查您的凭据。

于 2016-05-10T19:25:36.723 回答
0

我对 SQL server 和 Netbeans 也有同样的问题。为了解决它,我将 sqljdbc.jar 放在 java 目录“Java\jdk1.8.0_121\lib 目录”中,它可以工作:)

我在这个 bug 上花了 10 个小时。

于 2017-04-27T13:35:47.503 回答