java - 连接池在 Glassfish 中不起作用

标签 java netbeans glassfish connection-pooling

我正在使用 localhost 结合 Netbeans 运行 Glassfish 服务器版本 4.1。我在两台装有 Windows 10 的计算机上执行此操作。在一台计算机上,我安装了新的、干净的 Windows 10 版本。在该计算机上,连接池无法正常工作。在另一台计算机上,它在 Linux(以前的操作系统)中运行良好。

在 Netbeans 中,我正在使用 glassfis-fesources.xml 文件开发在 Glassfish 服务器上运行的 Maven Web 应用程序,如下所示:

<resources>
<jdbc-resource 
    enabled="true" 
    jndi-name="jdbc/securityDatasource" 
    object-type="user" 
    pool-name="jdbcRealmPool">
    <description/>
</jdbc-resource>
<jdbc-connection-pool 
    allow-non-component-callers="false" 
    associate-with-thread="false" 
    connection-creation-retry-attempts="0" 
    connection-creation-retry-interval-in-seconds="10" 
    connection-leak-reclaim="false" 
    connection-leak-timeout-in-seconds="0" 
    connection-validation-method="auto-commit" 
    datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource" 
    fail-all-connections="false" idle-timeout-in-seconds="300" 
    is-connection-validation-required="false" 
    is-isolation-level-guaranteed="true" 
    lazy-connection-association="false" 
    lazy-connection-enlistment="false" 
    match-connections="false" 
    max-connection-usage-count="0" 
    max-pool-size="32" 
    max-wait-time-in-millis="60000" 
    name="jdbcRealmPool" 
    non-transactional-connections="false" 
    pool-resize-quantity="2" 
    res-type="javax.sql.ConnectionPoolDataSource" 
    statement-timeout-in-seconds="-1" 
    steady-pool-size="8" 
    validate-atmost-once-period-in-seconds="0" 
    wrap-jdbc-objects="false">
    <property name="User" value="admin_computat"/>
    <property name="Password" value="*****"/>
    <property name="ServerName" value="localhost"/>
    <property name="Port" value="3306" />
    <property name="DatabaseName" value="admin_computat" />
     <property name="Url" value="jdbc:mysql://localhost:3306/admin_computat"/>
</jdbc-connection-pool>

在安装了新 Windows 10 的计算机上,我在 Glassfish 中进行 ping 测试时遇到以下错误。

Warning: RAR8054: Exception while creating an unpooled [test] connection for pool [ jdbcRealmPool ], Exception while destroying physical connection Severe: RestResponse.getResponse() gives FAILURE. endpoint = 'http://localhost:4848/management/domain/resources/ping-connection-pool.json'; attrs = '{id=jdbcRealmPool}'

可以使用相同的属性与 Netbeans 中的数据库建立连接。

为什么连接池不工作?

编辑: 单击http://localhost:4848/management/domain/resources/ping-connection-pool.json我找到了这条消息。

{"message":"Cannot find poolName in ping-connection-pool command model, file a bug\ninjection failed on org.glassfish.connectors.admin.cli.PingConnectionPool.poolName with class java.lang.String","command":"ping-connection-pool command","exit_code":"FAILURE","extraProperties":{"methods":[{"name":"GET"},{"messageParameters":{"appname":{"acceptableValues":"","defaultValue":"","optional":"true","type":"string"},"id":{"acceptableValues":"","defaultValue":"","optional":"false","type":"string"},"modulename":{"acceptableValues":"","defaultValue":"","optional":"true","type":"string"},"targetName":{"acceptableValues":"","defaultValue":"","optional":"true","type":"string"}}}],"commandLog":["ping-connection-pool"]},"children":[{"message":"Usage: ping-connection-pool [--appname=appname] [--modulename=modulename] pool_name ","properties":{}}]}

最佳答案

我发现了问题:

配置文件 glassfish-resource.xml 具有以下设置:

datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"

我改变了它

datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"

现在它可以工作了。

也许有人可以回答为什么同一个项目不能在一台计算机上运行。

关于java - 连接池在 Glassfish 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692495/

相关文章:

java - 如何在 Netbeans 中自动缩进?

java - 我得到 [Ljava.lang.Object;@ 而不是 JTable 上的数据

java - 如何在 Netbeans 中构建 Web 应用程序后运行 .war 文件

java - 如何阻止目录结构在 J2EE 应用程序中可见

maven-2 - Maven Cargo 配置 Glassfish 2.1 实例来运行集成测试?

java - 我可以制作一个采用实例并将 map 对象返回为静态的方法吗?

java - Camel,Amazon SQS - 没有类型转换器可用于将类型 : java. lang.String 转换为所需类型 : com. amazonaws.services.sqs.AmazonSQS

java - AssertJ:使用自定义比较器进行流畅的排序测试

Java TCP Socket发送字节数组

apache - 启动部署架构-在没有Apache的情况下运行Glassfish V3前奏