为什么我得到无效映射异常

时间:2017-08-07 19:58:17

标签: java xml spring hibernate

所以我在我的应用程序中使用hibernate 3.2和Spring 2。我在编译它并在Tomcat 6上运行并运行时遇到问题。 它继续抱怨一些“InvalidMappingException”并抱怨我的应用程序上下文hibernate xml文件。我检查并重新检查了文件上的标签,似乎没有任何明显的标签错误给我。

这是控制台输出

    SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'DisplayOnlineAlertInterceptor' defined in class path resource [com/usps/ism/techarch/contexts/alert/application-context-onlineAert.xml]: Cannot resolve reference to bean 'dispAlertOnlineArch' while setting bean property 'dispAlertOnlineArch'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dispAlertOnlineArch' defined in class path resource [com/usps/ism/techarch/contexts/alert/application-context-onlineAert.xml]: Cannot resolve reference to bean 'operationalAlertDAO' while setting bean property 'operationalAlertDAO'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'operationalAlertDAO' defined in class path resource [com/usps/ism/techarch/contexts/alert/application-context-onlineAert.xml]: Cannot resolve reference to bean 'hibernateTemplate' while setting bean property 'hibernateTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate-abstract.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dispAlertOnlineArch' defined in class path resource [com/usps/ism/techarch/contexts/alert/application-context-onlineAert.xml]: Cannot resolve reference to bean 'operationalAlertDAO' while setting bean property 'operationalAlertDAO'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'operationalAlertDAO' defined in class path resource [com/usps/ism/techarch/contexts/alert/application-context-onlineAert.xml]: Cannot resolve reference to bean 'hibernateTemplate' while setting bean property 'hibernateTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate-abstract.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'operationalAlertDAO' defined in class path resource [com/usps/ism/techarch/contexts/alert/application-context-onlineAert.xml]: Cannot resolve reference to bean 'hibernateTemplate' while setting bean property 'hibernateTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate-abstract.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate-abstract.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jar:file:/C:/SVN/ism_code/CR_31_0/gbs_rcpt/receipt-web/target/webapp/WEB-INF/lib/techarch-dao-0.1.0.0-SNAPSHOT.jar!/com/usps/ism/dao/application-context-dao-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:508)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:651)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1062)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1029)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:420)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:246)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:128)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:955)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:729)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:416)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:246)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:128)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:955)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:729)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:416)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:246)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:128)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:955)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:729)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:416)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:246)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:128)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:955)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:729)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:416)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:290)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:348)
    at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:676)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:602)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:503)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at 

  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    Caused by: org.dom4j.DocumentException: Error on line 31 of document  : The 
    content of elements must consist of well-formed character data or markup. 
    Nested exception: The content of elements must consist of well-formed 
    character data or markup.
    at org.dom4j.io.SAXReader.read(SAXReader.java:482)
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
    ... 75 more

这是我的“application-context-hibernate.xml”

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

    <!-- this defines all common dao beans -->
    <import resource="application-context-dao-hibernate-abstract.xml"/>

    <bean id="sessionFactory" parent="sessionFactoryAbs">
        <property name="mappingLocations"> 
            <list>
                  <value>classpath*:com/usps/ism/domain/*.hbm.xml</value>    
                  <value>classpath*:com/usps/ism/domain/noncascade/*.hbm.xml</value>  

                  <value>classpath*:com/usps/ism/*/domain/*.hbm.xml</value>  
            </list>
        </property>
    </bean>
</beans>

有人可以帮我找出问题所在吗?感谢

查看我最近更改的其他hbm xml,我有一个searchquery hbm xml文件,其中包含一些格式化查询的问题。它查询oracle视图,但我无法正确地格式化比较运算符

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <sql-query name="countryOfInterestCountVSearchQuery">
        <return alias="countryOfInterestSearchResultsDto" class="com.usps.ism.receipt.domain.CountryOfInterestSearchResultsDto" />
        select distinct
            ctry_intt_seq_nbr,
            ctry_intt_servr_site_cd,
            ML_CL_CODE,
            ORGN_CTRY_CODE,
            fac_isc,
            eff_utc_dtm,
            STS,
            smpl_freq,
            MAX_SMPL,
            PRDCTD_RCPT_CNT,
            RCPT_GRWTH_FCTR,
            PRDCTD_RCPT_CNT_W_GRWTH
        from ctry_intt_cnt_v cicv
        where (cicv.FAC_ISC = :inputFac OR :inputFac is null)
            and (cicv.ORGN_CTRY_CODE = :inputOrgnCtryCode OR :inputOrgnCtryCode is null)
            and (cicv.ML_CL_CODE = :inputMlClCode OR :inputMlClCode is null)
            and (cicv.STS in (:inputSts))
            and (cicv.SMPL_FREQ = :inputSmplFreq OR :inputSmplFreq is null)
            and ((:inputPrdctnDate IS NULL AND ((cicv.EFF_UTC_DTM > sys_extract_utc(systimestamp) AND to_char(cicv.PRDCTN_DATE, 'MM/DD/YYYY') = to_char(cicv.EFF_UTC_DTM, 'MM/DD/YYYY')) OR (cicv.EFF_UTC_DTM <=sys_extract_utc(systimestamp) AND to_char(cicv.PRDCTN_DATE, 'MM/DD/YYYY') = to_char(sys_extract_utc(systimestamp), 'MM/DD/YYYY')))) OR (:inputPrdcnDate IS NOT NULL AND cicv.PRDCTN_DATE = :inputPrdctnDATE))
    </sql-query>
</hibernate-mapping>

2 个答案:

答案 0 :(得分:2)

我不相信错误在您的application-context-hibernate.xml本身,但是在其中一个引用的映射文件中。

线索是:

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream

Hibernate在阅读其中一个实际的地图文档*.hbm.xml

时遇到了问题

如果您对任何文件进行了任何更改,请查看,或者尝试通过在线XML验证程序运行它们,以查看是否存在格式问题。

答案 1 :(得分:0)

好的浏览一下StackOverflow,再过几次,我认为我已经把它想出来了 - 所以XML并不像那些&#39;&lt;&#39;和&#39;&gt;&#39;但是那些操作者需要的是小于和大于。 Having greater than or less than in hibernate named sql query

基本上我必须使用一些&amp; LT;而不是&#39;而不是&#39;而不是&#39;和&amp; GT;而不是&#39;&gt;&#39;