我正在使用一台全新的开发PC,需要测试一个在本地GlassFish服务器3.1.2上运行的个人应用程序,该应用程序应与名为“funkOneDB”的本地SQL数据库连接(我的IDE是NetBeans7.2.1)。但是我无法使GlassFish服务器与数据库连接,并且问题似乎与GlassFish Server目录中的SQL驱动程序(位置)有关(在几行中提供了更多问题细节)。
我相当肯定我在GlassFish服务器上正确地设置了相关的JDBC资源和连接池(因为我模拟了已经存在的设置,并且在另一台正在开发的PC上工作正常)。
资源细节包括:
- jndi名称:jdbc/功能资源
- 池名称:FunkPool
(最重要的)池细节包括:
- 池名称:FunkPool
- 资源类型:javax.sql.Datasource
- 数据源类名:com.mysql.jdbc.jdbc2.optional.MysqlDataSource
- 附加属性对应于应用程序的XMLGlassFish资源中的细节(用户名、密码、url等;没有问题)
我首先将必要的SQL驱动程序放在GlassFish服务器的目录中,即文件mysql-connector-java-5.1.18-bin.jar,其位置为..\GlassFish3\GlassFish\domains\domain1\lib\ext。
然而,当我在GlassFish服务器上从JDBC池“FunkPool”执行ping测试时,我得到了以下错误:
- Ping FunkPool的连接池失败。WEB 9031:WebappClassLoader无法加载资源[com.mysql.jdbc.SQLError],因为该资源尚未启动或已停止请检查server.log以获取更多详细信息。*
在server.log中,我只发现了以下额外的日志异常和失败信息:
(i)* 为池[ FunkPool ]创建未池化的[test]连接时出现异常,WEB 9031:WebappClassLoader无法加载资源[com.mysql.jdbc.SQLError],因为该资源尚未启动或已停止 *
(ii)* getResponse()给出失败。端点= 'http://localhost:4848/management/domain/resources/ping-connection-pool.json
';属性= '{id=功能池}'*
但是请注意,当我通过jdbc:mysql://localhost:33066/funkOneDB
从IDE NetBeans ping数据库funkOneDB时,它是成功的。
我也在stackoverflow上搜索过这个问题。我确实发现了一些人在谈论这个问题,比如
Glassfisch MySQL ping ERROR(无人应答),或
Struggling to create MySQL Connection Pool on Glassfish(尝试了该解决方案,即将SQL驱动程序放在..\GlassFish3\GlassFish\domains\domain1\lib\中的上一级,但这会产生其他错误,即使在重新启动Glassfish服务器之后也是如此),或者
GlassFish not loading connector(即使尝试了这个解决方案,也没有成功)。
有人能帮我解决这个问题吗?非常感谢!
顺致问候!
海因茨
3条答案
按热度按时间57hvy0tb1#
将mysql驱动程序放置在项目的lib文件夹中。然后执行清理和构建。让netbeans直接与数据库通信也很有帮助。这将允许您直接从IDE查看数据库结构和数据库内容。有关将MySQL与netbeans集成的帮助,请查看此处:netbeans.org/kb/docs/ide/mysql.html
a6b3iqyw2#
我的朋友,我也有同样的例外:
返回失败。端点= 'http://localhost:4848/management/domain/resources/ping-connection-pool.json';属性= '{id=功能池}'
我的错误原因是,我输入了错误的身份证明。请在客户机DB应用程序(例如SQL Developer)中检查您的身份证明。
xoshrz7s3#
我在使用SQL Server和Netbeans时也遇到了同样的问题。为了解决这个问题,我把sqljdbc.jar放在java目录“Java\jdk1.8.0_121\lib目录”中,它就能正常工作了:)
我花了10个小时在这个窃听器上。