我正在使用一台全新的开发 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 未加载连接器 (即使尝试过此解决方案,也没有成功)。
有人可以帮我解决这个问题吗?提前谢谢了!
亲切的问候,
亨氏