【发布时间】: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