ClassPathXmlApplicationContext 手动加载spring时遇到的问题

通过ClassPathXmlApplicationContext 加载spring时 在加载到hibernate配置文件的时候就报错了 ,而且有时不报错有时就报错

错误:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [hibernate.cfg.xml]; nested exception is java.net.ConnectException: Connection timed out: connect
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:416)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93)
at com.nodeproxy.database.base.ApplicationContextSingleton.getInstance(ApplicationContextSingleton.java:21)
at com.nodeproxy.thread.service.ServiceDownloadThread.run(ServiceDownloadThread.java:23)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:790)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:731)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:656)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:979)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1192)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1089)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1002)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
... 18 more

看异常我感觉是hibernate dtd的问题,但是dtd是先从本地找的,我直接用tomcat起项目的话就没有问题,求解

0

2个回答

nested exception is java.net.ConnectException: Connection timed out: connect
at

hibernate.cfg.xml的问题

你的cfg头是什么?

换成如下试试:

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

2
yh502564622
yh502564622 所以我也很纠结啊 不过好在没有在出现过这个问题了
6 年多之前 回复
jinnianshilongnian
jinnianshilongnian 如果手动加载hibernate配置的话可能要联网去加载dtd文件 ,而网速慢就导致了 连接延迟,没有dtd就不能解析配置 不过hibernate jar包中都有dtd的啊 这个肯定是不需要的 之前使用从没有遇到这种情况
6 年多之前 回复
yh502564622
yh502564622 我用ClassPathXmlApplicationContext 加载的时候把hibernate的配置文件也加载了 ,但是在spring的配置文件中又引用了hibernate的配置, 不知道是不是重复了的问题, 我刚让ClassPathXmlApplicationContext 只加载spring的配置就可以了。 如果手动加载hibernate配置的话可能要联网去加载dtd文件 ,而网速慢就导致了 连接延迟,没有dtd就不能解析配置了
6 年多之前 回复
yh502564622
yh502564622 谢谢 你提醒了我 我搞定了
6 年多之前 回复
jinnianshilongnian
jinnianshilongnian 对, 不是我说的问题, 你在eclipse中运行造成的? 很奇怪 。 既然你和spring集成了,就不需要hibernate.cfg.xml了 你可以把该配置文件卡掉
6 年多之前 回复
yh502564622
yh502564622 如果配置错误啊之类的话 那我用tomcat启动也一定会报错的 但是现在tomcat启的话完全正常 而手动加载的话就会包上边那种 连接超时的错误
6 年多之前 回复
jinnianshilongnian
jinnianshilongnian 这个之前遇到过 doctype造成 hibernate不能运行
6 年多之前 回复
yh502564622
yh502564622 头就是这个 配置肯定没有问题的 因为有时候就能运行哦
6 年多之前 回复

打出的异常是IO异常,确定路径是否正确吧

0
yh502564622
yh502564622 其实我一直认为是网络问题的 但是tomcat起的话又正常 纠结啊
6 年多之前 回复
chawei784533
chawei784533 能否确定不是网络问题
6 年多之前 回复
yh502564622
yh502564622 对啊 昨天下午一直都是时好时坏的 这个错误让我郁闷的啊
6 年多之前 回复
chawei784533
chawei784533 那有时报错有时不报错都是手动启动吗?
6 年多之前 回复
yh502564622
yh502564622 我用tomcat起就完全没有问题啊 所以能确定配置没有问题啊
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring容器的触发事件 ClassPathXmlApplicationContext的start()方法的用法
spring容器的触发事件 ClassPathXmlApplicationContext的start()方法的用法
Spring new ClassPathXmlApplicationContext()使用 * 匹配读取多配置文件 报错
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;一共有两种方法: 第一种:数组方式 String[] configLocations = new String[]{&quot;applicationContext-beans.xml&quot;,&quot;applicationContext-common.xml&quot;}; BeanFactory factory = new ClassPathXm...
在程序中用new ClassPathXmlApplicationContext()获取Spring的上下文环境注意事项
问题背景:在我们的web程序中,用spring来管理各个实例(bean), 有时在程序中为了使用已被实例化的bean, 通常会用到这样的代码: [java] view plain copy ApplicationContext appContext =              new ClassPathXmlApplicationContext("c
Spring中ClassPathXmlApplicationContext类的简单使用/在jar包中访问spring配置文件的方式
一、简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象).可以用: ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); RegisterDAO registerDAO = (RegisterDAO)ac.getBean("R
手动加载spring, ApplicationContext怎么销毁
原帖地址http://blog.sina.com.cn/s/blog_5db0dfe40101bsb4.html 感谢原帖博主 AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); ctx.close(); 在非Web应用中,手工加载Spring
Spring整理系列(03)——spring容器ApplicationContext初始化(spring应用上下文初始化)
可以通过以下三种方式加载spring容器,实现bean的扫描与管理:1、 ClassPathXmlApplicationContext:从类路径中加载ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-context.xml"); context.start();2
项目中使用new ClassPathXmlApplicationContext()获得spring上下文对象的问题
问题背景:在我们的web程序中,用spring来管理各个实例(bean), 有时在程序中为了使用已被实例化的bean, 通常会用到这样的代码: ApplicationContext appContext = new ClassPathXmlApplicationContext(&quot;classpath:META-INF/spring/applicationContext-com...
spring手动初始化bean
ApplicationContext ctx= new ClassPathXmlApplicationContext(new String[]{“beans.xml”,”application.xml”});   BeanFactory  factory =ctx;
spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext
NULL 博文链接:https://canfly2010.iteye.com/blog/443063
Spring 配置过程遇到问题锦集
问题一: 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener java.lang.NoSuchMethodError: org.springframework.web.conte
Spring bean加载方式
在加载spring的bean的xml文件,生成spring容器。得到bean对象的几中用法。 在srping中可以配置一个xml文件,但是为了解耦也可以配置多个xml文件。 通过spring容器直接生成bean对象。   1、用ApplicationConetx上下文对象来加载application.xml文件。   解析一个xml文件: 比如说: Appl...
springMVC学习中遇到的问题
mvc传值:
Spring中使用classpath*加载配置文件,jar包中的配置文件不加载问题
jar中配置文件放在“/”(根目录)下时,通过classpath*加载配置文件,jar包中的配置文件不会加载, 这是因为Spring使用classpath加载配置文件时需要借助JDK的ClassLoader.getResources(String name)方法,而该方法有一个局限:当传入的参数为空字符串时,即我们本意是想从根目录获取文件,这时JDK只会返回存在于文件系统中的资源,而...
模拟spring中的ClassPathXmlApplicationContext类的实现
NULL 博文链接:https://gaojiewyh.iteye.com/blog/409606
Spring配置文件解析(一)ClassPathXmlApplicationContext源码分析
1 概述 针对前面的SpringIOC的源码分析,我们看见了在整个Spring容器初始化的时候,配置文件的解析是相当重要的,所以从这篇文章开始,我们将对配置文件的解析进行深入的分析。 这里我们仅仅拿ClassPathXmlApplicationContext类来进行分析,因为FileSystemXmlApplicationContext的配置文件解析的过程和ClassPathXmlApplica...
Spring Mvc开发遇到的问题汇总
eclipse  Version: Luna Service Release 2 (4.4.2) Build id: 20150219-0600 jdk 1.8 tomcate8 问题一:Tomcate 启动失败 运行项目:出现tomcat启动失败,(不要怀疑是Tomcate坏了。因为运行其他项目就可以启动;不用eclipse ,使用startup也能正常启动,所以
学习Springboot遇到的一些坑
IDEA 上中文乱码的问题,解决方案记录 1.读取properties文件中的中文乱码 通过如下的方法 注:勾上之后,最好把文件先备份后删掉,再新建一次。建议把IDEA的编码格式都配置成UTF-8 2.读取数据库中的中文乱码 检查数据库的字符集编码格式,改成utf8 检查数据连接的url加入characterEncoding=urf8 jdbc:mysql://127.0....
spring同时加载多个properties
java加载properties文件的方法 http://blog.csdn.net/u011063151/article/details/51888640 spring的xml加载properties文件 https://www.cnblogs.com/shanheyongmu/p/5806872.html 需要同时加载多个properties,上面基本没有借鉴的地方,重新写了一个
spring错误总结.txt
spring错误总结.txt,里面有本人学习SPRING时遇到的问题以及问题的解决方法
Junit手动/自动加载spring配置文件
Junit手动加载配置文件配置文件在classpath下和WEB-INF下两种情况的加载: ApplicationContext context = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml"); new ClassPathXmlApplicationContext("appl
ApplicationContext读取xml配置文件 报错
配置文件: public class App { public static void main( String[] args ) { ApplicationContext appContext = new ClassPathXmlApplicationContext("/applicationContext-aop.xml"); Studen
Spring基本执行过程解析
1.当使用 ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-config.xml"); 2.进入ClassPathXmlApplicationContext.java public ClassPathXmlApplicationContext(String[] configLoca
手动加载spring配置文件
手动加载Spring配置文件有两个类,分别是ClassPathXmlApplication与FileSystemXmlApplicationContext; 两个类的区别: 1.ClassPathXmlApplication的使用方法 @Test public void testBean(){ //单配置文件方式一 ApplicationContext APPLICATI...
spring cloud遇到的问题
spring cloud遇到的问题 1. spring cloud分为多个版本,还在持续更新 使用过程中应注意版本的兼容性问题。 Spring Cloud Finchley 依赖于 Spring Boot 2.0.x 并与 1.x.y 系列不兼容。
Spring4.0学习(二)采用@Autowired方式自动获取
1、定义三个类 com.hl.demo1.Car package com.hl.demo1; public class Car { private String brand = ""; private float price = 0; public String getBrand() { return brand; } public void setBrand(String b
不加载,手动实例化Service
//调用方法 private static IEntityService entityService=(IEntityService) BeanService.getBean("entityService"); BeanService里面的方法 private static Map beans; static { beans = new HashMap(); } publi
关于SSM框架搭建的过程和遇到的一些坑
前言 这是我第一次搭建SSM框架,参考了一些资料与博客,就简单的实现了MVC层数据到数据库的数据持久化 数据库结构 项目目录结构 搭建过程 1. 在IDEA创建一个新的Maven项目并选择webapp模板 pom.xml文件的配置(这里各位可以根据自己项目的需求导入相应的依赖) &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt; &amp;am
跨域加载资源
在使用HTTP请求时,会遇到跨域加载问题,本例解决该类问题,
读取Spring的配置文件applicationContext.xml的5种方法
1.利用ClassPathXmlApplicationContext,这种方式配置文件应该放在类包同路径下 Java代码: ApplicationContext ct=new ClassPathXmlApplicationContext("applicationContext01.xml"); ct.getBean(""); 2.利用FileSystemXmlApplic
spring的ClassPathXmlApplicationContext
我想用dom4j模拟一下spring的ioc,可是最后一句总空指针 是怎么回事rnpublic ClassPathXmlApplicationContext() throws Exception rn SAXReader reader = new SAXReader();rnrn // 构造文档对象rn Document document = reader.read(new File("src/config/spring/demo0/springMethod/beans.xml"));rnrn Element rootElmt = document.getRootElement();// 获取根元素beansrn List list = rootElmt.elements("bean");// 取名字为bean的所有元素rn for (int i = 0; i < list.size(); i++) rn Element element = (Element) list.get(i);rn Attribute attr = element.attribute("id");// 通过id找到这个属性rn// System.out.println(attr.getName() + "=" + attr.getValue());//通过找到的属性的getName()和getValue()找到属性和值rn String clazz = element.attributeValue("class");//通过class找到属性值rn Object o = Class.forName(clazz).newInstance();rn System.out.println(clazz);rn beans.put(attr.getName(), o);rn rn for (Element propertyElement : (List) element.elements("property")) rn String name = propertyElement.attributeValue("name"); // userDAOrn String bean = propertyElement.attributeValue("bean"); // urn Object beanObject = beans.get(bean);// UserDAOImpl instancernrn String methodName = "set" + name.substring(0, 1).toUpperCase()rn + name.substring(1);rn System.out.println("method name = " + methodName);rnrn System.out.println(bean);rn rn Method m = o.getClass().getMethod(methodName,beanObject.getClass().getInterfaces()[0]);rn m.invoke(o, beanObject);rn rnrn rn rn rnrnxml文件:rnrn rn rn rn rnrn
spring读取配置文件
spring读取配置不同目录下的配置文件,使用ClassPathXmlApplicationContext与FileSystemXmlApplicationContext
Spring系列笔记(一)--Bean装载
         Spring框架体系最基础的功能依赖注入和AOP,首先根据框架的执行顺序,介绍一下使用Spring框架时,实例的装载过程。一、解析配置文件        Spring通过配置文件的形式将业务系统中复杂的实例组合、频繁的实例创建、公共功能抽象等封装出来,又容器加载配置文件进行统一管理。比如ServiceA需要ServiceB的实例,简单的做法是ServiceA中new一个Servi...
Spring实现Bean动态注册
注:此博客为转载,原地址为:http://blog.sina.com.cn/s/blog_74af50ec01018yy9.html                首先需要解释下,何谓Bean动态注册?我们知道,我们A类依赖B类,且A、B类都需要在Spring的applicationContext.xml中进行注册,A、B的依赖关系通过property的ref属性映射,还有一种实现方式就
springcloud常见问题总结
Eureka Eureka Environment的配置: eureka.environment: 字符串 参考文档: https://github.com/Netflix/eureka/wiki/Configuring-Eureka   Eureka DataCenter的配置 eureka.datacenter: cloud https://github.com/Net...
springmvc加载配置文件中的bean的方法
package com.spring.alick.util; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.mchange.v2.c3p0.C
Spring 依赖注入(DI)示例
依赖注入 依赖注入是为了解决紧耦合问题而产生的一种技术,紧耦合的代码难以测试、难以复用、难以理解,当程序出现bug时,修复bug经常会产生连锁反应,但是,一定程度的耦合又是必须的,完全没有耦合的代码什么也做不了。所以一种比较好的方案就是,将依赖关系交给第三方组件来描述。 通过DI,对象的依赖关系将有系统中负责协调各对象的第三方组件在创建对象的时候设定。例如,在Spring中可以通过编写XML来描述...
如何在服务器启动的时候自动装在spring容器(例如applicationContext.xml)
如果要在服务器启动时自动加载spring容器的话,那可定要在web.xml中配置。那么如何配置呢?请看下面代码 第一种: 没有任何的参数,直接通过监听器加载spring容器,这时候默认的读取路径是读取WEB-INF/applicationContext.xml,也就是说spring容器的配置文件只能有一个且名字必须为applicationContext.xml   &amp;lt;!-- 通过这...
Spring中使用classpath加载配置文件浅析
在应用 Spring 的工程中,使用 class path 的方式加载配置文件应该是最常用的做法,然而对大部分人来说,刚开始使用 Spring 时,几乎都碰到过加载配置文件失败的情况,除了配置上的错误外,很多时候是因为配置文件的路径和程序中指定的加载路径不一致,从而导致配置文件找不到,或是加载了错误地方的配置文件。本文将就 Spring 如何从 class path 中加载配置文件做一...
spring开发中遇到的bug及解决方法
目录 一、 NoClassDefFoundError 1 二、 IllegalStateException 1 三、 今天在学习SpringMVC时,遇到了一个问题 1 四、 java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config 2 五、 Compilation error: 2 六、 org.s
在项目开发中遇到的springMVC问题
在开发过程中遇到SpringMVC把JS等资源拦截的问题,于是配置web.xml如下:&amp;lt;servlet&amp;gt; &amp;lt;servlet-name&amp;gt;dispatcher&amp;lt;/servlet-name&amp;gt; &amp;lt;servlet-class&amp;gt;org.springframework.web.servlet.DispatcherServlet&amp;lt;/servle...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习python时遇到的问题 大数据学习遇到的问题