Spring框架中如何调试“java.lang.ClassNotFoundException: org.aspectj.weaver.World”? [关闭]

Posted

技术标签:

【中文标题】Spring框架中如何调试“java.lang.ClassNotFoundException: org.aspectj.weaver.World”? [关闭]【英文标题】:How to debug "java.lang.ClassNotFoundException: org.aspectj.weaver.World" in the Spring framework? [closed] 【发布时间】:2018-11-17 08:45:03 【问题描述】:

我正在使用 servlet-context.xml 和根 context.xml 而不是 servlet-dispatcher.xml

project /src structure

servlet-context.xml

root-context.xml

错误:org.springframework.web.context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanDefinitionStoreException:从 URL [file:/C:/Program%20Files/apache-tomcat-8.0.39/wtpwebapps/EBoutiqueV3/WEB-INF/classes/applicationContext.xml] 解析 XML 文档时出现意外异常;嵌套异常是 java.lang.NoClassDefFoundError: org/aspectj/weaver/World 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) 在 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) 在 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436) 在 org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 在 java.util.concurrent.FutureTask.run(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(未知来源) 引起:java.lang.NoClassDefFoundError: org/aspectj/weaver/World 在 org.springframework.context.annotation.ComponentScanBeanDefinitionParser.createTypeFilter(ComponentScanBeanDefinitionParser.java:236) 在 org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parseTypeFilters(ComponentScanBeanDefinitionParser.java:209) 在 org.springframework.context.annotation.ComponentScanBeanDefinitionParser.configureScanner(ComponentScanBeanDefinitionParser.java:123) 在 org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:83) 在 org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) 在 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1419) 在 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1409) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) ... 22 更多 引起:java.lang.ClassNotFoundException:org.aspectj.weaver.World 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) ... 34 更多

【问题讨论】:

您的错误ClassNotFoundException: org.aspectj.weaver.World。最好将其包含在 CLASSPATH 中 Stack Overflow 上有数百万个问题。考虑一下如果所有问题作者都使用“请,我需要帮助!!!”的标题,该网站会有多有用。 SEVERE: Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException:的可能重复 【参考方案1】:

Solution is here, search before posting.

复制粘贴,就是答案

"您必须在 web.xml 文件中初始化您的 dispatcher-servlet.xml 文件。更改您的 web.xml 文件,在 .

之间添加这些行
<init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
This is your final web.xml file

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>SpringMVCTest</display-name>
  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>
                   org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
    <load-on-startup>1</load-on-startup>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </init-param>
</servlet>

  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

您应该在 WEB-INF 文件夹下创建 dispatcher-servlet.xml 文件" - 以上主题中的User Dev4World。

【讨论】:

我现在就试试这个,非常感谢!!! 如果一个问题与另一个问题重复,请在问题下方发表评论(您现在有足够的声誉这样做)。在声誉的后期阶段,您将能够投票以关闭重复的问题。 很遗憾没用):

以上是关于Spring框架中如何调试“java.lang.ClassNotFoundException: org.aspectj.weaver.World”? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何调试spring依赖顺序?

深入浅出Spring原理及实战「源码调试分析」结合DataSourceRegister深入分析ImportBeanDefinitionRegistrar的源码运作流程

在 Grails Spring 安全核心插件中配置了两次 Spring 安全核心框架

如何在idea中调试spring bean

深入浅出Spring原理及实战「源码调试分析」结合DataSourceRegister深入分析ImportBeanDefinitionRegistrar的源码运作流程

调试 Spring 配置