給外國朋友:
spring how to find and read applicationContext.xml from jar file?
Is very easy! Put jar file to web-inf/lib directory. Don't put it to web-inf/classes directory. When you make jar file, check eclipse's "Add directory entries" option. Because of The classPath include [src(classes)] path,but not include jar file where in [src(classes)] path.
很多人喜歡把非jsp部分的純java代碼打包為jar使用,但是如果把applicationContext.xml放在src目錄中一起打包的話,很多人表示網站就無法正常運行了。
很多人費勁心機研究如何修改web.xml文件來處理:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
但是,其實這么寫並沒有什么問題。說起來解決這個問題很簡單,你是不是把生成的jar文件放在web-inf/classes目錄下了,兄弟,把它放在web-inf/lib目錄下試試,是不是一切都好了?
要注意打包時選上“Add directory entries”

====================================================
擴展信息:
如果需要用到 .jar 文件中的類或者資源, 必須把 jar 文件的文件名放入類路徑, 而不是其(jar)所在的目錄。
Java EE規范(Servlet規范)中,web app的web-inf/lib目錄下的所有jar文件會自動加入classpath。
jar文件放在web-inf/classes目錄下時,並不算在classpath中,因此jar中的applicationContext.xml找不到。
