Hibernate映射不是在离线模式下

问题描述:

我们正在经历灾难恢复工作和几个休眠+ Spring应用程序工作不与下面的错误开始Hibernate映射不是在离线模式下

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1337) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
       at java.security.AccessController.doPrivileged(AccessController.java:214) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 
       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) 
       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) 
       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) 
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) 
       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByName(AbstractAutowireCapableBeanFactory.java:1029) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:977) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) 
       ... 55 more 
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream 
       at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:541) 
       at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:638) 
       at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) 
       ... 67 more 
**Caused by: org.dom4j.DocumentException: Server returned HTTP response code: 504 for URL: http://www.jboss.org/dtd/hibernate/hibernate-mapping-3.0.dtd Nested exception: Server returned HTTP response code: 504 for URL: http://www.jboss.org/dtd/hibernate/hibernate-mapping-3.0.dtd** 
       at org.dom4j.io.SAXReader.read(SAXReader.java:484) 
       at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:532) 
       ... 71 more 

HBM的映射XML文件有

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

搜索在SO和Hibernate论坛上,修复程序看起来像我们需要在DOC文档中将DTD制作为SYSTEM,以便从本地系统读取,而不是从sourceforge.net上托管公共dtd。

<!DOCTYPE hibernate-mapping SYSTEM "hibernate-mapping-3.0.dtd"> 

但有了这个休眠正在寻找应用程序服务器上的根文件夹

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream 
       at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:541) 
       at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:638) 
       at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368) 
       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) 
       ... 72 more 
Caused by: org.dom4j.DocumentException: C:\IBMSOA\SDP70\runtimes\base_v61\profiles\AppSrvWSFP01\hibernate-mapping-3.0.dtd (The system cannot find the file specified.) Nested exception: C:\IBMSOA\SDP70\runtimes\base_v61\profiles\AppSrvWSFP01\hibernate-mapping-3.0.dtd (The system cannot find the file specified.) 
       at org.dom4j.io.SAXReader.read(SAXReader.java:484) 
       at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:532) 
       ... 76 more 

文件应如何SYSTEM DTD引用来指定,因为Hibernate从hibernate.jar而不是在文件系统中寻找它读取DTD?下面

+0

怎么了答案,已发布? – 2012-04-26 16:18:50

+0

此答案已被“*由业主*删除”。 – 2012-04-26 18:24:26

看着休眠源DTDEntityResolver http://grepcode.com/file/repo1.maven.org/maven2/org.hibernate/hibernate-core/3.3.1.GA/org/hibernate/util/DTDEntityResolver.java#DTDEntityResolver为我们工作

<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

耶开源!

+2

仍然无法在离线状态下工作 – Ravindu 2014-02-20 08:15:28

http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd

下载该文件,并使用本地

同为配置文件

下载DTD文件,并在本地使用它,它会工作