Ho passato troppo tempo della mia giornata cercando di capire alcuni errori durante il collegamento di alcuni factory bean JNDI. Il problema si è scoperto che invece di questo ...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/loc"/>
</bean>
In realtà avevo scritto questo ...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/loc"/>
</bean>
Ne deduco che java:comp/env/
forse fa riferimento a qualche variabile di ambiente e fa in modo che, in definitiva, venga esaminato il mio file di contesto. L'unica differenza è java:comp/env/
. Dalla bocca di un esperto, cosa fa?
Senza il java:comp/env/
prefisso nel valore, otterrei un errore che diceva "Nome jdbc non è vincolato in questo contesto" .
jdbc/loc
e quindijava:comp/env/jdbc/loc
è corretto), mentre la risposta di cherouvim implica che stavi usando in modo errato il primo esempio (java:comp/env/jdbc/loc
e quindijdbc/loc
è corretto). Indipendentemente da ciò, la vera risposta è: dipende dal contesto attuale .