2016-10-03 59 views
0

我們在項目中使用了Spring框架。我加載從web.xml中applicationContext文件以下列方式:彈簧容器在加載多個彈簧配置文件時看到錯誤路徑

<servlet> 
     <servlet-name>SpringDispatcherServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/CustomerService/applicationContext.xml</param-value> 
     </init-param> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>SpringDispatcherServlet</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

我試圖加載一個配置文件JobDesigner-springintegration.xmlapplicationContext文件中按以下方式:

<import resource="JobDesigner-springintegration.xml"/>  

現在,我試圖加載幾個更多的配置文件裏面

`JobDesigner-springintegration.xml` file in the following manner: 

<import resource="*.xml"/> 

但奇怪的是春季容器正在尋找一個錯誤的路徑東西如下圖所示: jndi:/localhost/cciupg/WEB-INF/CustomerService/ 日誌摘錄如下:

12:52:15,202 INFO [STDOUT] 12:52:15,202 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from ServletContext resource [/WEB-INF/CustomerService/JobDesigner-springintegration.xml] 
12:52:15,453 INFO [STDOUT] 12:52:15,448 WARN [PathMatchingResourcePatternResolver] Cannot search for matching files underneath URL [jndi:/localhost/cciupg/WEB-INF/CustomerService/] because it does not correspond to a directory in the file system 
java.io.FileNotFoundException: URL [jndi:/localhost/cciupg/WEB-INF/CustomerService/] cannot be resolved to absolute file path because it does not reside in the file system: jndi:/localhost/cciupg/WEB-INF/CustomerService/ 
    at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:205) 
    at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52) 
    at org.springframework.core.io.UrlResource.getFile(UrlResource.java:169) 
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.doFindPathMatchingFileResources(PathMatchingResourcePatternResolver.java:526) 
    at org.springframework.web.context.support.ServletContextResourcePatternResolver.doFindPathMatchingFileResources(ServletContextResourcePatternResolver.java:92) 
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:347) 
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:279) 
    at org.springframework.context.support.AbstractApplicationContext.getResources(AbstractApplicationContext.java:1269) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:208) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:261) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:197) 
    at org.springframework.beans.factory.xml.DefaultBeanDe 

這裏的問題是,爲什麼Spring容器是看錯誤的道路jndi:/localhost/cciupg/WEB-INF/CustomerService/代替/WEB-INF/CustomerService/

而奇怪的部分是爲什麼它追加jndi:/localhost/cciupg到路徑?

回答

0

WEB-INF不是我相信的classpath的一部分。因此它找不到你的* .xml文件。我相信jndi可能是在查看類路徑後拋出錯誤時彈簧檢查過的最後一個位置。

換句話說,試着把你的文件放在classpath中。在Java項目中,我通常會在主 - >資源路徑中看到資源。