【问题标题】:javax.naming.NameNotFoundException trying to deploy Grails in OC4Jjavax.naming.NameNotFoundException 试图在 OC4J 中部署 Grails
【发布时间】:2012-08-03 21:59:18
【问题描述】:
环境
问题
当我的配置使用 jndi 时,我无法部署 grails 战争文件。我可以确保在“JNDI 浏览器”(oc4j 的管理)中查看的 OC4J 中创建了数据源并可用。
我尝试将“setParentDataSources”设置为 true,以使 grails 应用程序继承默认应用程序的数据源,但没有成功。
例外是:
设置时无法解析对 bean 'dataSourceUnproxied' 的引用
构造函数参数;嵌套异常是
org.springframework.beans.factory.BeanCreationException:错误
创建名为“dataSourceUnproxied”的 bean:调用 init
方法失败;嵌套异常是 javax.naming.NameNotFoundException:
java:comp/env/jdbc/pontomoduloweb 在中找不到
所以我的问题是:我错过了什么吗?我可以以某种方式更深入地调试它吗?
【问题讨论】:
标签:
grails
deployment
jndi
oc4j
【解决方案1】:
经过一番努力,我在 OC4J 中找到了一个配置,该配置使数据源对所有部署的应用程序全局可用。
在$OC4J_HOME\j2ee\home\config\server.xml 中,更改应用程序服务器标签添加选项global-jndi-lookup-enabled:
<application-server xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/application-server-10_1.xsd" application-directory="../applications"
check-for-updates="adminClientOnly"
deployment-directory="../application-deployments"
connector-directory="../connectors"
global-jndi-lookup-enabled="true"
schema-major-version="10" schema-minor-version="0" >
并且不要忘记标记在本地类路径中查找类的选项。