荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: slight (生命不息,奋斗不止), 信区: Java
标  题: 如何读懂异常发生时的信息
发信站: 荔园晨风BBS站 (Wed Nov 15 22:54:23 2006), 站内

感觉新手面对大段大段的异常信息会无所适从,
其实可以丛冢获取很有用的帮助信息。
刚好一个同事让我教他如何读这些信息,
所以帖在这里,跟大家共同学习。
/********************
*********************/
标记里是我的注释。


Connected to the target VM, address: '127.0.0.1:1266', transport: 'socket'
21:17:40,081 ERROR Configuration:296 - Could not configure datastore from input
stream
/**********************
ERROR表示这是一个错误,Configuration:296 表示这个信息在Configuration的第296行记
录下来的。
Could not configure datastore from input stream 表示的是这个错误的原因。

下面这些是导致错误所发生的异常的信息。
at
at
是一个调用堆栈,最上面的at org.dom4j.io.SAXReader.read(SAXReader.java:358)就是异
常的发生点。
connect Nested exception
表示DocumentException是一个嵌套异常,异常由另一个异常所引起。
*********************/
org.dom4j.DocumentException: Connection timed out: connect Nested exception:
Connection timed out: connect
        at org.dom4j.io.SAXReader.read(SAXReader.java:358)
        at
net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:287)
        at
org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertiesSet(Loc
alSessionFactoryBean.java:446)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.inv
okeInitMethods(AbstractAutowireCapableBeanFactory.java:1003)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.cre
ateBean(AbstractAutowireCapableBeanFactory.java:348)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe
anFactory.java:226)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe
anFactory.java:147)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstanti
ateSingletons(DefaultListableBeanFactory.java:269)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractA
pplicationContext.java:317)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:80)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:65)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:56)
        at com.test.TestDemo.testHibernate(TestDemo.java:31)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at junit.textui.TestRunner.doRun(TestRunner.java:116)
        at
com.intellij.rt.execution.junit2.IdeaJUnitAgent.doRun(IdeaJUnitAgent.java:58)
        at junit.textui.TestRunner.start(TestRunner.java:172)
        at
com.intellij.rt.execution.junit.TextTestRunner2.startRunnerWithArgs(TextTestRunn
er2.java:23)
        at
com.intellij.rt.execution.junit2.JUnitStarter.prepareStreamsAndStart(JUnitStarte
r.java:98)
        at
com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
/****************
注意到下面的Nested exception,
真正说明了DocumentException是一个嵌套异常,上面的异常是有下面的异常引起
异常信息是:java.net.ConnectException: Connection timed out: connect
******************/
Nested exception:
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.Socket.connect(Socket.java:507)
        at java.net.Socket.connect(Socket.java:457)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
        at sun.net.www.http.HttpClient.New(HttpClient.java:287)
        at sun.net.www.http.HttpClient.New(HttpClient.java:299)
        at
sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.j
ava:792)
        at
sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:
744)
        at
sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:669)
        at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.jav
a:913)
/***********************
注意这几行,说明xml在处理dtd时使用http去连网络,但是网络不通。
但是注意这里,我们没办法知道到底连了什么网络地址。

如何知道呢?这需要靠写程序的人注意,他可以尝试connection异常,
然后做下error日志,然后还是抛出该connection异常,
这样我们就可以清楚知道了。这也算是写程序的小技巧了。

我想想,上面的办法也不好,会淹没了堆栈的实际信息。
还是在连接网络前,自己做下info级别的日志好,呵呵。

************************/
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLE
ntityManager.java:973)
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityMa
nager.java:905)
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntit
yManager.java:872)
        at
com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDS
cannerImpl.java:282)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDispatcher.dis
patch(XMLDocumentScannerImpl.java:1021)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocum
ent(XMLDocumentFragmentScannerImpl.java:368)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configu
ration.java:834)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configu
ration.java:764)
        at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
        at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXPa
rser.java:1242)
        at org.dom4j.io.SAXReader.read(SAXReader.java:339)
        at
net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:287)
        at
org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertiesSet(Loc
alSessionFactoryBean.java:446)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.inv
okeInitMethods(AbstractAutowireCapableBeanFactory.java:1003)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.cre
ateBean(AbstractAutowireCapableBeanFactory.java:348)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe
anFactory.java:226)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe
anFactory.java:147)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstanti
ateSingletons(DefaultListableBeanFactory.java:269)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractA
pplicationContext.java:317)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:80)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:65)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:56)
        at com.test.TestDemo.testHibernate(TestDemo.java:31)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at junit.textui.TestRunner.doRun(TestRunner.java:116)
        at
com.intellij.rt.execution.junit2.IdeaJUnitAgent.doRun(IdeaJUnitAgent.java:58)
        at junit.textui.TestRunner.start(TestRunner.java:172)
        at
com.intellij.rt.execution.junit.TextTestRunner2.startRunnerWithArgs(TextTestRunn
er2.java:23)
        at
com.intellij.rt.execution.junit2.JUnitStarter.prepareStreamsAndStart(JUnitStarte
r.java:98)
        at
com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)

/***********************
这段是由于上面的工作失败,导致总的工作失败,所以总的工作也报了这个错误。
************************/
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'sessionFactory' defined in class path resource
[hibernate-Context.xml]: Initialization of bean failed; nested exception is
net.sf.hibernate.MappingException: org.dom4j.DocumentException: Connection
timed out: connect Nested exception: Connection timed out: connect
net.sf.hibernate.MappingException: org.dom4j.DocumentException: Connection
timed out: connect Nested exception: Connection timed out: connect
        at
net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:297)
        at
org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertiesSet(Loc
alSessionFactoryBean.java:446)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.inv
okeInitMethods(AbstractAutowireCapableBeanFactory.java:1003)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.cre
ateBean(AbstractAutowireCapableBeanFactory.java:348)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe
anFactory.java:226)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe
anFactory.java:147)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstanti
ateSingletons(DefaultListableBeanFactory.java:269)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractA
pplicationContext.java:317)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:80)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:65)
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:56)
        at com.test.TestDemo.testHibernate(TestDemo.java:31)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
        at
com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
Caused by: org.dom4j.DocumentException: Connection timed out: connect Nested
exception: Connection timed out: connect
        at org.dom4j.io.SAXReader.read(SAXReader.java:358)
        at
net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:287)
        ... 29 more

Disconnected from the target VM, address: '127.0.0.1:1266', transport: 'socket'

Process finished with exit co


de -1


--
"尽管外表完整快活。但灵魂中已留下某些创伤"
哈哈,这是一句爱因斯坦形容莫扎特的话,两位最美妙的天才,简直cool


※ 修改:·slight 于 Nov 15 23:19:30 修改本文·[FROM: 59.40.163.219]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 59.40.163.219]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店