Java程序运行异常,望牛人指点

运行环境:Eclipse SDK Version: 3.3.1,tomcat 6.0.16

运行时提示如下错误:

2010-1-13 11:03:28 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jbpm-process-upload-servet threw exception
java.lang.ClassNotFoundException: org.dom4j.DocumentException
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 at org.jbpm.db.hibernate.HibernateHelper.createConfiguration(HibernateHelper.java:74)
 at org.jbpm.persistence.db.DbPersistenceServiceFactory.getConfiguration(DbPersistenceServiceFactory.java:69)
 at org.jbpm.persistence.db.DbPersistenceServiceFactory.getSessionFactory(DbPersistenceServiceFactory.java:91)
 at org.jbpm.persistence.db.DbPersistenceService.getSessionFactory(DbPersistenceService.java:95)
 at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:99)
 at org.jbpm.persistence.db.DbPersistenceService.getGraphSession(DbPersistenceService.java:345)
 at org.jbpm.JbpmContext.getGraphSession(JbpmContext.java:571)
 at org.jbpm.JbpmContext.deployProcessDefinition(JbpmContext.java:173)
 at org.jbpm.web.ProcessUploadServlet.handleRequest(ProcessUploadServlet.java:93)
 at org.jbpm.web.ProcessUploadServlet.service(ProcessUploadServlet.java:58)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 at java.lang.Thread.run(Unknown Source)
我在引用的libraries里面也能找到org.dom4j.DocumentException这个类,不知道怎么办

 


问题补充:
以上的回答应该都不是,因为我加载org.dom4j.jar(包含org.dom4j.DocumentException)和不加载它抛出的异常是一样的
问题补充:
请问6楼的意思是不是除了dom4j包外,其它包里可能已经有org.dom4j.DocumentException 类了,导致冲突
问题补充:
我确定dom4j是最新的,也能被加载到,因为我把相同目录下的别的引用包去了,会报相似的错误
问题补充:
附件中是我加载的包目录,我查过了这里面只有dom4j包里有org.dom4j.DocumentException 类,不知道别的地方还有没有可能包含org.dom4j.DocumentException 类


问题补充:
我的dom4j是放在Web App Libraries 下的,Web App Libraries 下的其他类包我去掉就会报类似的错误。刚把dom4j放到tomcat的类库下试了也不行

问题补充:
问题已解决,应该是包冲突,我把原来在tomcat下独立部署的东西全删了,在Eclipse里从新部署一遍就好了。

12个回答

我觉得是包冲突 从你调用的地方看看真正加载的包是不是和dom4j有冲突了

java.lang.ClassNotFoundException: org.dom4j.DocumentException

少了dom4j的jar包或版本不对

一般这种java.lang.ClassNotFoundException: 的错误都是由于没有找到class文件,也就是说没有找到装载这个class文件的JAR包,有的时候还会报没有找到方法的错误,这种错误就可能是有很多JAR包里都有同名类,因为虚拟机加载的时候,对于一个类加载器,全路径名相同的类只加载一次。
你把dom4j的JAR加进去就好了。

你所找到的 那是个抛出异常 就是抛出的DocumentException异常
你好好看看dom4j包

没有找到java.lang.ClassNotFoundException: org.dom4j.DocumentException 类

看看是不是包冲突了

的确是缺少dom4j的jar包,去下面的官网下载
[url]http://www.dom4j.org/[/url]

你的JAR包是最新版本的么? 或者你的工程里在,别的JAR包引入过程中,是否已经加载了别的JAR包,你在运行的时候 在eclipse里 把最近的dom4j放到 加载顺序的第一个 你试验下

我觉得是 不过确实没有遇上过相同的情况 你查查吧 这个就好像在websphere中部署xfire时 会出现由于jdom冲突导致一系列ClassNotFoundException

我在引用的libraries里面也能找到org.dom4j.DocumentException这个类
这个类是属于在哪个jar包中

共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问