【问题标题】:Glassfish 4 - clustered setup - database connection pool on DASGlassfish 4 - 集群设置 - DAS 上的数据库连接池
【发布时间】:2014-10-22 00:14:25
【问题描述】:

我安装了 glassfish 4 (DAS)。一个远程 (SSH) 节点和一个集群,该节点上有一个实例。 我还为它定义了一个连接池和数据源。

我的测试应用程序非常简单 - 它是一个带有一个 servlet 的 Web 应用程序,我通过以下方式加载数据源:

@Resource(lookup = "jdbc/vadsacRootSource")
private Datasource datasource;

什么不起作用 - 集群实例(远程)上的数据源无法实例化,因为找不到底层池 - 堆栈跟踪见消息末尾。

有什么作用:

  • 本地 DAS 节点(默认节点)上的相同应用程序
  • 在远程和本地加载保存为自定义 JNDI 资源的字符串
  • glassfish 3.1 上的整个应用程序(也是数据源) - 远程和本地

因此,当前 glassfish 4 版本存在问题 - 数据源(或其池)未在某些远程 SSH 实例上实例化(或通过 JNDI 找到?)。 我已经测试了官方版本 4.0 和 nightly build 版本 4.1-bl3 - 同样的问题

你有什么想法吗?

GlassFish 服务器 开源版 4.0 - 错误报告

HTTP 状态 500 - 内部服务器错误


类型异常 报告

消息内部服务器 错误

说明服务器遇到内部错误 这导致它无法满足此请求。

异常

javax.servlet.ServletException: 实例化 servlet 类时出错
com.sedo.webtesty.HelloWorld

根本原因

com.sun.enterprise.container.common.spi.util.InjectionException:
为类创建托管对象时出错:类
com.sedo.webtesty.HelloWorld

根本原因

com.sun.enterprise.container.common.spi.util.InjectionException:
尝试注入 Res-Ref-Env-Property 的异常:
com.sedo.webtesty.HelloWorld/datasource@javax.sql.DataSource@ 已解决
如:jndi:jdbc/vadsacRootSource@res 主体:null@mail:null 否
运行时属性数据库供应商:null 在部署时创建表:
取消部署时删除表:错误进入班级
com.sedo.webtesty.HelloWorld:查找失败
'java:comp/env/com.sedo.webtesty.HelloWorld/datasource' 在
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming}

根 原因

javax.naming.NamingException: 查找失败
'java:comp/env/com.sedo.webtesty.HelloWorld/datasource' 在
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming} [根
异常是 javax.naming.NamingException: Lookup failed for
'jdbc/vadsacRootSource' 在
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}
[根异常是 javax.naming.NamingException:无法查找
资源:jdbc/vadsacRootSource [根异常是
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
查找“__SYSTEM/pools/mysqlRootVadsacPool”失败
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}]]]

根 原因

javax.naming.NamingException: 查找失败
'jdbc/vadsacRootSource' 在
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}
[根异常是 javax.naming.NamingException:无法查找
资源:jdbc/vadsacRootSource [根异常是
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
查找“__SYSTEM/pools/mysqlRootVadsacPool”失败
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}]]

根 原因

javax.naming.NamingException:无法查找资源
: jdbc/vadsacRootSource [根异常是
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
查找“__SYSTEM/pools/mysqlRootVadsacPool”失败
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}]

根 原因

com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
查找“__SYSTEM/pools/mysqlRootVadsacPool”失败
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}

根 原因

javax.naming.NamingException: 查找失败
'__SYSTEM/pools/mysqlRootVadsacPool' 在
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.enterprise.naming.logicalName=java:comp/env/com.sedo.webtesty.HelloWorld/datasource}
[根异常是 javax.naming.NameNotFoundException:
池]

根本原因

javax.naming.NameNotFoundException: 池

注意 异常的完整堆栈跟踪及其根本原因是 GlassFish Server Open Source Edition 4.0 中可用 日志。


GlassFish 服务器开源版 4.0

【问题讨论】:

  • 当前开发版本Glassfish 4.1-bl3同样的问题

标签: java glassfish glassfish-4


【解决方案1】:

问题已在当前 4.1 版本中得到修复 - 现在一切正常

【讨论】:

    猜你喜欢
    • 2015-09-06
    • 2017-03-31
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2013-08-06
    • 2023-03-19
    • 1970-01-01
    • 2013-09-21
    相关资源
    最近更新 更多