我一天中花了太多时间试图找出一些连接JNDI工厂bean的错误。问题原来是,而不是这个...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/loc"/>
</bean>
我实际上已经写过了...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/loc"/>
</bean>
我推断java:comp/env/
也许引用了一些环境变量并使之生效,以便最终查看我的上下文文件。唯一的区别是java:comp/env/
。从专家的口中,这是做什么的?
java:comp/env/
在值中没有前缀的情况下,我将收到一条错误消息,指出“名称jdbc在此上下文中未绑定”。
jdbc/loc
因此java:comp/env/jdbc/loc
是正确的),而cherouvim的答案暗示您错误地使用了第一个例子(java:comp/env/jdbc/loc
因此jdbc/loc
是正确的)。无论如何,真正的答案是:它取决于当前上下文。