尝试在OC4J中部署Grails的javax.naming.NameNotFoundException

时间:2012-08-03 21:59:18

标签: grails deployment jndi oc4j

环境

  • Grails 2.0.4
  • OC4j 10.1.3

问题

当我的配置使用jndi时,我无法部署grails war文件。我可以确保数据源是在OC4J中创建的,并且可以在“JNDI浏览器”(管理oc4j)中查看。

我尝试将“setParentDataSources”设置为true,以使grails应用程序继承默认应用程序的数据源,但是没有成功。

例外是:

  

设置时无法解析对bean“dataSourceUnproxied”的引用   构造函数参数;嵌套异常是   org.springframework.beans.factory.BeanCreationException:错误   创建名为'dataSourceUnproxied'的bean:调用init   方法失败;嵌套异常是javax.naming.NameNotFoundException:   在

中找不到java:comp / env / jdbc / pontomoduloweb

所以我的问题是:我错过了什么吗?我可以以某种方式更深入地调试这个吗?

1 个答案:

答案 0 :(得分:0)

经过一番争论之后,我在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" >

并且也不要忘记标记选项以在本地类路径中查找类。