我正在使用一个全新的开发pc,需要测试在本地GlassFish服务器3.1.2上运行的个人应用程序,并且应该与名为'funkOneDB'的本地SQL数据库连接(我的IDE是NetBeans 7.2.1)。但是我不能让GlassFish服务器连接到数据库,这个问题似乎与GlassFish服务器目录中的SQL驱动程序(位置)有关(在几行中有更多的问题细节)。
我相当肯定我正确地在GlassFish服务器上设置了相关的JDBC资源和连接池(因为我模仿了一个已经存在并在另一个开发pc上正常工作的设置)。
资源细节如下:
- jndi name: jdbc/FunkResource
- 池名:FunkPool
(最重要的)Pool细节如下:
- 池名:FunkPool
- 资源类型:javax.sql.数据源
- datasource classname: com.mysql.jdbc.jdbc2.optional。MysqlDataSource
- 附加属性对应于应用程序的XML glassfish资源(用户名、密码、url等)中的具体内容;没有问题)
我首先将必要的SQL驱动程序放在GlassFish服务器的目录中,即文件mysql-connector-java-5.1.18-bin.jar at ..GlassFish3GlassFishdomainsdomain1libext。
然而,当我在GlassFish服务器上从JDBC池'FunkPool'执行ping测试时,我得到以下错误:
Ping连接池失败。WEB9031: WebappClassLoader无法加载资源[com.mysql.jdbc]。SQLError],因为它还没有启动,或者已经停止,请查看server.log了解更多细节。
在server.log中,我只发现以下额外的日志异常和失败信息:
(i) 在为[FunkPool]池创建未池的[test]连接时,WEB9031: WebappClassLoader无法加载资源[com.mysql.jdbc]。SQLError],因为它还没有启动,或者已经停止
(ii) RestResponse.getResponse()给出FAILURE。endpoint = ' http://localhost:4848/management/domain/resources/ping-connection-pool.json
';attrs = '{id=FunkPool}'
jdbc:mysql://localhost:33066/funkOneDB
从IDE NetBeans ping数据库funkOneDB时,它是成功的。如前所述,我用于这个基于ide的ping的凭据和其他数据与我在JDBC连接池中使用的数据相同。我也在stackoverflow上搜索了一些问题。我确实发现一些人在谈论它,比如
glassfish MySQL ping ERROR(没有人回答),或者
努力在Glassfish上创建MySQL连接池(尝试了该解决方案,即将SQL驱动程序提升一层…GlassFish3GlassFishdomainsdomain1lib,但这会产生其他错误,即使重新启动GlassFish服务器),或
GlassFish没有加载连接器(即使尝试了这个解决方案,也没有成功)。
有人能帮我解决这个问题吗?提前感谢!致以亲切的问候
亨氏的将mysql驱动程序放在项目的lib文件夹中。然后进行清理和构建。让netbeans直接与数据库通信也很有帮助。这将允许您从IDE中查看数据库结构和数据库内容。有关MySQL与netbeans集成的帮助,请参见:netbeans.org/kb/docs/ide/mysql.html
我的朋友,我有同样的例外:
RestResponse.getResponse()给出FAILURE。端点= 'http://localhost:4848/management/domain/resources/ping-connection-pool.json';attrs = '{id=FunkPool}'
我出错的原因是,我放错了凭据。在客户端DB应用程序(例如SQL Developer)中检查您的凭据。
我有同样的问题与SQL server和Netbeans。为了解决这个问题,我把sqljdbc.jar放在java目录"java jdk1.8.0_121lib目录"中,它工作了:)
我刚刚花了10个小时在这个bug上。