今天下午发现一个小玩意。
[localhost-startStop-1]DEBUG org.hibernate.util.DTDEntityResolver - trying to resolve system-id [http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd]
在整合springmvc和hibernate的时候出现了下面这条语句tomcat 一分钟才启动,平时也就10秒之内
把网络断开后
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:610)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:684)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 22 more
Caused by: org.dom4j.DocumentException: www.hibernate.org Nested exception: www.hibernate.org
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:601)
... 26 more
报了这个错误。 原来这货一直在访问官网
通过配置了几遍的dtd 发现问题还是没有解决
后来我到hibernate的jar包下把 mapping的copy到自己的 XXX.hbm.xml 的头上面 tomcat呼呼的6秒启动了
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
上面两个是hibernate3.0 mapping 文件的两个头 我开始是把以前的做过的hibernate的hbm文件直接拿过来用的。
而第二个是我现在用的jar包里的mapping的头 区别的就是 地址改了
所以解析的时候它找不到本地配置的dtd文件 就自己上网去了。
如果以后在写东西,确定xml的 上面的一堆要和 源文件下面的 官方提供的相同。很小的东西,但值得注意