【问题标题】:BeanDefinitionStoreException IOException while accessing the application context file访问应用程序上下文文件时出现 BeanDefinitionStoreException IOException
【发布时间】:2016-03-23 06:49:58
【问题描述】:

编写一个简单的 spring 程序从 filepathxmlapplication 上下文中读取 bean,但得到以下异常。

但我确信可以访问 xml bean 定义文件。

public void testConnection() {
        try{

            List <LnkConnectionResponse> connResponse = new ArrayList <LnkConnectionResponse> ();


            log.info ("before xml resource");

            ApplicationContext context = new FileSystemXmlApplicationContext("M:/My Documents/workspace-sts-3.7.0.RELEASE/LDODashBoard/src/main/webapp/WEB-INF/mvc-database.xml");

            log.info ("before get bean");
            LnkConnectionWrapper linkConnectionArray = (LnkConnectionWrapper)context.getBean("linkConnectionArray");

xml bean 文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:lang="http://www.springframework.org/schema/lang"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
                           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
                           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                           http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd">



   <util:list  id="dbnameList"  list-class="java.util.ArrayList">
        <value>LDMDB</value>
        <value>GCMMDB</value>
        <value>CVDBCHECKOUT</value>
        <value>CVEMEADBCHECKOUT</value>
        <value>LDMDB</value>
        <value>OPUSDB</value>
        <value>CDRDB</value>
        <value>TLMDB</value>
    </util:list>

   <util:list  id="urlList"  list-class="java.util.ArrayList"> 
        <value>ldmUnprocessedLink</value>
        <value>gcmmLink2</value>
        <value>dbCheckout</value>
        <value>dbCheckoutEMEA</value>
        <value>dbCheckout</value>
        <value>dbCheckout</value>
        <value>dbCheckout</value>
        <value>dbCheckout</value>
    </util:list>

   <util:list id="QueryList"  list-class="java.util.ArrayList"> 
        <value>select count( * ) from futures.EXMAN_STAGING where REGION = 'LONDON' and process_time_stamp is null</value>
        <value>select count( * ) from futures.EXMAN_STAGING where REGION = 'LONDON' and process_time_stamp is null</value>
        <value>select name from v$database } select market from cv_welcome where rownum &#60; 2</value>
        <value>select market from cvision.cv_welcome where rownum &#60; 2</value>
        <value>select 'X' from dual</value>
        <value>select 'X' from dual } select GET_PREV_BIZ_DATE from dual </value>
        <value>select dummy from dual } Select PREV_BUSINESS_DATE  From gmirpt.SD_GMI_PROCDATE  Where REGION_IND = 'ATL'</value>
        <value>select 'X' from dual</value>
    </util:list>

  <bean id="DBQueryBean" class="com.connection.impl.DBQueryImpl">
     <property name="DBName">
        <ref  bean="dbnameList"/>
     </property>
     <property name="UrlName">
        <ref  bean="urlList"/>
     </property>
     <property name="QueryString">
        <ref  bean="QueryList"/>
     </property>     
  </bean>

  <bean id="LdmDatabaseBean" class="com.connection.impl.LDMConnectionImpl">
     <property name="dbQuery" ref="DBQueryBean"/>
  </bean>

 <bean id="tlmWebConnectlink" class="com.implementation.LnkConnectionCheck">
    <property name="urlIDDesc" value="TLMWebConnect" />
    <property name="urlIDGroup" value="tlmlink" />
    <property name="urlLink" value="https://tlmapp.csintra.net/WebConnect/login/login.jsp" />
    <property name="urlDescription" value="TLM Web Connnect" />
  </bean>

  <bean id="linkConnectionArray" class="com.implementation.LnkConnectionWrapper">
    <property name="lnkConnectionCheck">
        <list>
           <ref bean="tlmWebConnectlink" />
        </list>
     </property>
  </bean>

</beans>

异常日志

INFO TestLnkConnection - 在 xml 资源 INFO 之前 FileSystemXmlApplicationContext - 刷新 org.springframework.context.support.FileSystemXmlApplicationContext@61d83ac7: 启动日期 [Thu Dec 17 06:48:07 GMT+08:00 2015];语境之根 层次结构 INFO XmlBeanDefinitionReader - 加载 XML bean 定义 从文件 [M:\My Documents\workspace-sts-3.7.0.RELEASE\LDODashBoard\src\main\webapp\WEB-INF\mvc-database.xml] 错误 TestLnkConnection - 此处收到异常!!! org.springframework.beans.factory.BeanDefinitionStoreException: IOException 从文件 [M:\My 解析 XML 文档 Documents\workspace-sts-3.7.0.RELEASE\LDODashBoard\src\main\webapp\WEB-INF\mvc-database.xml];嵌套异常是 java.io.FileNotFoundException: M:\My Documents\workspace-sts-3.7.0.RELEASE\LDODashBoard\src\main\webapp\WEB-INF\mvc-database.xml (系统找不到指定的路径)在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:343) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251) 在 org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) 在 org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) 在 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) 在 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454) 在 org.springframework.context.support.FileSystemXmlApplicationContext.(FileSystemXmlApplicationContext.java:140) 在 org.springframework.context.support.FileSystemXmlApplicationContext.(FileSystemXmlApplicationContext.java:84) 在 com.implementation.TestLnkConnection.testConnection(TestLnkConnection.java:47) 在 com.implementation.TestLnkConnection.main(TestLnkConnection.java:73) 引起:java.io.FileNotFoundException: M:\My Documents\workspace-sts-3.7.0.RELEASE\LDODashBoard\src\main\webapp\WEB-INF\mvc-database.xml (系统找不到指定的路径)在 java.io.FileInputStream.open(Native Method) 在 java.io.FileInputStream.(FileInputStream.java:146) 在 org.springframework.core.io.FileSystemResource.getInputStream(FileSystemResource.java:114) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:329) ... 14 更多

【问题讨论】:

    标签: spring


    【解决方案1】:

    如果您查看日志,您的问题是 FileNotFoundException。

    java.io.FileNotFoundException: M:\My Documents\workspace-sts-3.7.0.RELEASE\LDODashBoard\src\main\webapp\WEB-INF\mvc-database.xml(系统找不到指定的路径)

    您需要确保在 Web 应用程序中正确引用该文件,并确保其位于正确的位置。

    【讨论】:

    • 同意,但这就是问题所在,我可以用指定的路径打开文件,没有任何问题,
    • 解决了似乎目录没有得到解决的问题,将文件 xml 文件复制到它解决的其他地方 ApplicationContext context = new FileSystemXmlApplicationContext("M:\\mvc-database.xml");跨度>
    • 很高兴它有帮助。文件路径可能非常变化无常,因此拥有标准化方法很重要。还要记住,如果您从没有管理员/超级用户访问权限的系统运行 Web 应用程序,则在使用它时可能会引发错误(不允许访问和那种垃圾)。因此,请确保您的文件夹/文件具有适当的权限以供应用程序访问而不会出现问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多