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/loce 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/loce quindijdbc/locè corretto). Indipendentemente da ciò, la vera risposta è: dipende dal contesto attuale .