[英]In JBoss application server, how do I make sure that all modules in a deployment use the same Classloader for a jar library?
[英]how to make sure that the temporary jar file is accessible by the classloader
我有一個使用URLCLassLoader的自定義jar類加載器。 我必須從數據庫讀取jar內容並加載它們。 有幾個與此有關的問題。
我可以以某種方式從字節流中加載所有類,而不是先從數據庫中將jar內容保存到臨時文件,然后將file:// URL提供給URL類加載器嗎?
如果對上述問題的回答是“是”,則類加載器將確保立即從字節流中讀取所有類文件和資源,以避免以后發生ClassNotFoundError。
如果答案是Q1。 沒有。 然后按照我的方法,我從數據庫字節流中創建了一個臨時 .jar,並為URLClassloader指定了file:// URL。 URLClassloader是否確保該URL上的臨時文件在使用之前不會被破壞,以避免ClassNotFoundException?
也歡迎對上述總體問題有任何其他解決方案。 提前致謝。
您可以使用自己的URLStreamHandler
構造一個URL
。 但是, URLClassLoader
常規實現會將內容保存到臨時文件並使用JarFile
API。
如果創建一個臨時文件,則在UNIX系統上,您應該能夠在打開后將其刪除。 在Windows上,您需要保留它,直到完成類加載器為止。 在Java SE 7中,您可以關閉URLClassLoader
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.