gpt4 book ai didi

java - WebLogic + Spring 的 JNDI 查找配置错误

转载 作者:行者123 更新时间:2023-11-30 06:53:05 24 4
gpt4 key购买 nike

我正在将应用程序从 OC4J 迁移到 WebLogic 12c,Spring bean 出现错误,我不知道如何解决。我的问题是这个错误的原因可能是什么。我有以下用于 JNDI 查找的 bean:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${datasource.jndiname}" />
<property name="lookupOnStartup">
<value>false</value>
</property>
<property name="proxyInterface">
<value>javax.sql.DataSource</value>
</property>
</bean>

${datasource.jndiname} 预计来自包含以下行的 config.properties 文件:

server.database.datasource=${datasource.jndiname}

server.database.datasource 的值来自 config.filter 文件,其中包含以下行:

server.database.datasource=jdbc/DATASOURCE

这适用于 OC4J,当我将 ${datasource.jndiname} 替换为 WebLogic 中的值 jdbc/DATASOURCE 时,它也适用,但它给了我如果我保留引用(并且我需要保留它),则会出现以下错误:

JndiObjectTargetSource failed to obtain new target object; nested exception is javax.naming.NameNotFoundException: While trying to lookup '${datasource.jndiname}' didn't find subcontext '${datasource'. Resolved ''; remaining name '${datasource/jndiname}'

最佳答案

经过一些研究,我找到了修复该错误的 bean 属性。将属性 resourceRef 设置为 false 可使引用 ${datasource.jndiname} 按预期工作。在下面显示的最终代码中,我还添加了一个 JndiTemplate

<bean id="dsJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
</props>
</property>
</bean>

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${datasource.jndiname}" />
<property name="resourceRef" value="false"/>
<property name="lookupOnStartup" value="false"/>
<property name="proxyInterface" value="javax.sql.DataSource"/>
<property name="jndiTemplate">
<ref local="dsJndiTemplate" />
</property>
</bean>

关于java - WebLogic + Spring 的 JNDI 查找配置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42372537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com