当我的配置使用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
所以我的问题是:我错过了什么吗?我可以以某种方式更深入地调试这个吗?
答案 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" >
并且也不要忘记标记选项以在本地类路径中查找类。