新手求教,刚接触JBOSS,项目启动报错NoClassDefFoundError:org/jboss/virtual/VirtualFileVisitor

冬九曰 2014-11-06 08:06:48
2014-11-06 18:39:20,713 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/springmvc]] (http-127.0.0.1-8080-1) Initializing Spring FrameworkServlet 'spring'
2014-11-06 18:39:20,754 ERROR [org.springframework.web.servlet.DispatcherServlet] (http-127.0.0.1-8080-1) Context initialization failed: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring.xml]; nested exception is java.lang.NoClassDefFoundError: org/jboss/virtual/VirtualFileVisitor
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) [:3.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) [:3.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) [:3.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) [:3.0.2.RELEASE]
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124) [:3.0.2.RELEASE]
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93) [:3.0.2.RELEASE]
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) [:3.0.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465) [:3.0.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395) [:3.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442) [:3.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458) [:3.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339) [:3.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306) [:3.0.2.RELEASE]
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127) [:3.0.2.RELEASE]
at javax.servlet.GenericServlet.init(GenericServlet.java:242) [:1.0.0.Final]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1208) [:6.0.0.Final]
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:955) [:6.0.0.Final]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:188) [:6.0.0.Final]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.Final]
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.Final]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.Final]
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.Final]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.Final]
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.Final]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.Final]
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.Final]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.Final]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.Final]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.0.0.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.Final]
at java.lang.Thread.run(Thread.java:619) [:1.6.0_13]
Caused by: java.lang.NoClassDefFoundError: org/jboss/virtual/VirtualFileVisitor
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:348) [:3.0.2.RELEASE]
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:269) [:3.0.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getResources(AbstractApplicationContext.java:1197) [:3.0.2.RELEASE]
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:204) [:3.0.2.RELEASE]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:204) [:3.0.2.RELEASE]
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1335) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1325) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:136) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) [:3.0.2.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) [:3.0.2.RELEASE]
... 35 more
Caused by: java.lang.ClassNotFoundException: org.jboss.virtual.VirtualFileVisitor from BaseClassLoader@554b52{vfs:///E:/jboss-6.0.0.Final/server/default/deploy/springmvc.war}
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480) [jboss-classloader.jar:2.2.0.GA]
at java.lang.ClassLoader.loadClass(ClassLoader.java:252) [:1.6.0_13]
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) [:1.6.0_13]
... 48 more
...全文
882 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
姜小白- 2014-11-25
  • 打赏
  • 举报
回复
引用 8 楼 walkmoon 的回复:
引用 6 楼 liuwei789533533 的回复:
楼主,你的问题解决了吗?我现在出现的和你一样的问题,你怎么弄的
木有解决,放弃治疗了
应该可以解决的,试试4,5楼的方法。 容器的jar,在eclipse里面的时候,使用添加server runtime jar包的方式添加进去,正式运行的时候,jboss会自己有的jar包。 再给web-inf/lib 下放一份,反而有可能因jar包重复而导致的NoClassDefFoundError
冬九曰 2014-11-25
  • 打赏
  • 举报
回复
引用 6 楼 liuwei789533533 的回复:
楼主,你的问题解决了吗?我现在出现的和你一样的问题,你怎么弄的
木有解决,放弃治疗了
kevin-go 2014-11-12
  • 打赏
  • 举报
回复
引用 4 楼 humanity 的回复:
你不应该把 jboss 的东西复制到自己的项目的 jar 列表中。服务器的放在服务器下不要动它,你只自带服务器没有的部分。只要一个类库在服务器同有就从自己的项目中去掉。 Java 2 类加载器层次约定是 parent first,意思是说父层次类加载器中有就会用它(这时定义类的加载器是父的),没找到再找当前子类加载器中的(这时定义类的加载器是子的),但发起类加载请求的两种情况下都是子的,当我们在自己的地方放一份,当某个类在父中没有但子的中有时就从子的中加载成功了,但其它类在父的和子的中都有时就会出错了(原因就因为前面从子的中加载了一份类,它所在jar 中包括了其它的类也出现在父的jar中)。
嗯! 正解!
liuwei789533533 2014-11-12
  • 打赏
  • 举报
回复
楼主,你的问题解决了吗?我现在出现的和你一样的问题,你怎么弄的
humanity 2014-11-07
  • 打赏
  • 举报
回复
要让你的项目通过编译并不需要把 jar 复制过来,eclipse 这些开发工具都支持容器型类路径配置,如图我想用 jboss 的 ejb 支持。

humanity 2014-11-07
  • 打赏
  • 举报
回复
你不应该把 jboss 的东西复制到自己的项目的 jar 列表中。服务器的放在服务器下不要动它,你只自带服务器没有的部分。只要一个类库在服务器同有就从自己的项目中去掉。 Java 2 类加载器层次约定是 parent first,意思是说父层次类加载器中有就会用它(这时定义类的加载器是父的),没找到再找当前子类加载器中的(这时定义类的加载器是子的),但发起类加载请求的两种情况下都是子的,当我们在自己的地方放一份,当某个类在父中没有但子的中有时就从子的中加载成功了,但其它类在父的和子的中都有时就会出错了(原因就因为前面从子的中加载了一份类,它所在jar 中包括了其它的类也出现在父的jar中)。
冬九曰 2014-11-07
  • 打赏
  • 举报
回复
引用 2 楼 longtian1213 的回复:
你项目应该是没有jboss-vfs.jar 吧,去网上找一个加到你项目里
有的,从JBOSS里拷过来的
S117 2014-11-06
  • 打赏
  • 举报
回复
你项目应该是没有jboss-vfs.jar 吧,去网上找一个加到你项目里
冬九曰 2014-11-06
  • 打赏
  • 举报
回复
我用的是spring3.0,jdk6,jboss6

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧