發現一個問題,十分蛋疼。
咱們項目是由N個工程組成的,外圍工程是web工程,內部的工程打包成jar,放入外圍工程的WEB-INF/lib
內部的工程用到了spring的註解,例如@Service、@Controller等,在打成jar包以前,是能夠掃描到的,可是打成jar包以後,就掃描不到了,報NoSuchBeanException
在網上搜索了一下,發現了一個辦法,就是在用eclipse export jar的時候,勾選add directory entries java
這樣打出來的jar包,能夠解決這個問題,在外圍也能夠掃描到jar包內用註解聲明的bean。若是沒有勾上add directory entries,就不行了
用jar命令,比較了一下兩種方法打出的jar包的區別,如圖: web
能夠看到,勾選了add directory entries以後打出的jar包,多了路徑的信息,可能這就是區別
spring
不過如今問題是,咱們不可能都用手工export jar的方式來一個個導出jar包,不知道在maven中,要配置插件的什麼參數,能夠達到一樣的效果 ,bash
參考博客:http://kyfxbl.iteye.com/blog/1675368app
關於maven的問題我有空研究一下eclipse
大神解析:https://blog.csdn.net/xlxxcc/article/details/51142585maven
爲防止連接失效:spa
轉載了部分博客:.net
一、首先使用Eclipse打包,打包成JAR file。
二、上傳到Linux, 解壓my.jar插件
unzip my.jar -d myapp
三、進入 myapp文件夾, 使用如下命令:
java -Djava.ext.dirs=WebContent/WEB-INF/lib cn.com.test
大功告成
其餘技巧:除了上訴使用代碼方式查看jar包物理路徑,咱們還能夠是 jar tr my.jar來查看