2015-10-27 176 views
0

我正在努力部署一些hiber文件,這些文件包含在另一個模塊中的.jar文件中。以下是屏幕截圖爲:AddableSessionFactoryBean異常hbm文件未找到,但文件在lib/*中。jar

1)Maven構建 - 成功OK

2)中的tomcat /組件封裝結構/ - 好吧(文件都在那裏,裏面的jar)

3)堆棧跟蹤。

POM明智,我正在添加資源,因爲我們通常會這樣做......他們被發現好。

<!-- ... pom pom pom --> 
    <resources> 
     <resource> 
      <directory>src/java</directory> 
      <includes> 
       <include>**/*.xml</include> 
      </includes> 
     </resource> 
    </resources> 
<!-- ... more pom more pom --> 

任何幫助,將不勝感激

Build, everything OK

Package structure - everything is there

Trace

回答

0

我的假設是,有一個類加載器的問題。 春LocalSessionFactoryBean加載資源使用

Resource resource = new ClassPathResource(mapping.trim(), this.beanClassLoader); 

而且AdditionalHibernateMappingsImpl使用

this.mappingLocations[i] = new ClassPathResource(mappingResources[i].trim()); 

respectivily。試着調試這個類來看看使用了哪些類加載器。

+0

謝謝您的意見。我找到了解決這個問題的方法,它與我正在處理的巨大應用程序如何在tomcat中分發組件/共享資源有關。你確實是對的,但問題在於缺少tomcat/shared共享的「jar」,因此包含hbm文件的「jar」的部署目標。 – Fer

+0

@Fer我很高興你找到了解決方案。 –

0

我發現了這個問題。

組件AdditionalHibernateMappingImpl正在尋找不與其部署包相關的hbm資源,而是尋找web容器(本例中爲tomcat)的共享資源,因此包含org /.../*的「jar」必須將.xml部署目標設置爲在pom中「共享」。

謝謝!