Saya hanya menghabiskan terlalu banyak waktu hari saya mencoba mencari tahu beberapa kesalahan saat menghubungkan beberapa biji pabrik JNDI. Masalahnya ternyata bukan ini ...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/loc"/>
</bean>
Saya sebenarnya telah menulis ini ...
<bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/loc"/>
</bean>
Saya menyimpulkan bahwa java:comp/env/
mungkin mereferensikan beberapa variabel lingkungan dan membuatnya sehingga, pada akhirnya, file konteks saya dilihat. Satu-satunya perbedaan adalah java:comp/env/
. Dari mulut seorang ahli, apa fungsinya?
Tanpa java:comp/env/
awalan dalam nilai, saya akan mendapatkan kesalahan yang mengatakan "Nama jdbc tidak terikat dalam Konteks ini" .
jdbc/loc
dan karenanyajava:comp/env/jdbc/loc
benar), sedangkan jawaban cherouvim menyiratkan bahwa Anda salah menggunakan contoh pertama (java:comp/env/jdbc/loc
dan dengan demikianjdbc/loc
benar). Terlepas dari itu, jawaban sebenarnya adalah: itu tergantung pada konteks saat ini .Jawaban:
Mengutip https://web.archive.org/web/20140227201242/http://v1.dione.zcu.cz/java/docs/jndi-1.2/tutorial/beyond/misc/policy.html
Jadi, pengikatan yang Anda lakukan dari spring atau, misalnya, dari deskripsi konteks kucing jantan, buka secara default di java: comp / env /
Misalnya, jika konfigurasi Anda adalah:
Kemudian Anda dapat mengaksesnya secara langsung menggunakan:
atau Anda dapat membuat langkah perantara sehingga Anda tidak perlu menentukan "java: comp / env" untuk setiap sumber daya yang Anda ambil:
sumber
Ada juga sebuah properti
resourceRef
dariJndiObjectFactoryBean
yang, ketika diatur ketrue
, digunakan untuk secara otomatis tambahkan stringjava:comp/env/
jika tidak sudah ada.sumber
Setelah beberapa kali mencoba dan mendalami kode sumber Tomcat, saya menemukan bahwa properti sederhana useNaming = "false" berhasil !! Sekarang Tomcat menyelesaikan nama java: / liferay alih-alih java: comp / env / liferay
sumber