persistence-unit jar-file路徑問題

最近項目分包以後,很多實體類的掃描需要單個配置,覺得很麻煩,就引用了jar-file的引用方式,但是加載的時候,會因爲容器的表現而出現一些差異.

調試的頭都大了,翻閱了很多資料,其實jar-file的引入路徑是十分重要的.


其中會出現如下問題:

1.java.lang.RuntimeException: error trying to scan <jar-file>

2.java.lang.RuntimeException: Archive browser cannot handle protocol: jndi:/localhost/

3.Cannot resolve jar-file entry in persistence unit  without root URL


以上問題其實都是因爲沒有找到根路徑,根據persistence的原始文檔描述,persistence加載的根路徑到底是什麼?


其實就是META-INF文件夾. 在spring的配置文件中聲明entityManagerFactory的時候,就需要引入根路徑:

<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />

該路徑可以根據實際情況進行調整.


那麼persistence-unit 中的jar-file的路徑該怎麼設置呢?

<jar-file>classpath:../lib/abc.jar</jar-file>

其實abc.jar的實際路徑是web-inf/lib/abc.jar


以上是解決相對路徑的解決方案,請參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章