J'ai juste passé trop de temps de ma journée à essayer de trouver des erreurs lors de la connexion d'un bean d'usine JNDI. Le problème s'est avéré être qu'au lieu de cela ...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/loc"/>
</bean>
J'avais en fait écrit ceci ...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/loc"/>
</bean>
J'en déduis que java:comp/env/
peut - être fait référence à une variable d'environnement et fait en sorte que, finalement, mon fichier de contexte soit examiné. La seule différence est java:comp/env/
. De la bouche d'un expert, qu'est-ce que cela fait?
Sans le java:comp/env/
préfixe dans la valeur, j'obtiendrais une erreur qui dit "Le nom jdbc n'est pas lié dans ce contexte" .
jdbc/loc
etjava:comp/env/jdbc/loc
est donc correct), tandis que la réponse de cherouvim implique que vous utilisiez incorrectement le premier exemple (java:comp/env/jdbc/loc
etjdbc/loc
est donc correct). Quoi qu'il en soit, la vraie réponse est: cela dépend du contexte actuel .