gpt4 book ai didi

java - Spring:嵌套异常是 java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice

转载 作者:IT老高 更新时间:2023-10-28 13:50:20 27 4
gpt4 key购买 nike

堆栈跟踪:

Oct 24, 2014 8:12:04 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@50df2e: startup date [Fri Oct 24 08:12:04 IST 2014]; root of context hierarchy
Oct 24, 2014 8:12:05 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [knights-aop.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [knights-aop.xml]; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.java.spring.SpringDemo.main(SpringDemo.java:12)
Caused by: java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
at org.springframework.aop.config.ConfigBeanDefinitionParser.getAdviceClass(ConfigBeanDefinitionParser.java:410)
at org.springframework.aop.config.ConfigBeanDefinitionParser.createAdviceDefinition(ConfigBeanDefinitionParser.java:366)
at org.springframework.aop.config.ConfigBeanDefinitionParser.parseAdvice(ConfigBeanDefinitionParser.java:332)
at org.springframework.aop.config.ConfigBeanDefinitionParser.parseAspect(ConfigBeanDefinitionParser.java:227)
at org.springframework.aop.config.ConfigBeanDefinitionParser.parse(ConfigBeanDefinitionParser.java:115)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:195)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
... 14 more

配置xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<bean id="knight" class="com.java.spring.BraveKnight">
<constructor-arg ref="quest" />
</bean>

<bean id="quest" class="com.java.spring.ResqueDamselQuest" />

<bean id="minstrel"
class="com.java.spring.Minstrel" /> <!--<co id="co_minstrel_bean"/>-->

<aop:config>
<aop:aspect ref="minstrel">

<aop:pointcut id="embark"
expression="execution(* *.embarkOnQuest(..))" /> <!--<co id="co_define_pointcut"/>-->

<aop:before pointcut-ref="embark"
method="singBeforeQuest"/> <!--<co id="co_minstrel_before_advice"/>-->

<aop:after pointcut-ref="embark"
method="singAfterQuest"/> <!--<co id="co_minstrel_after_advice"/>-->

</aop:aspect>
</aop:config>
</beans>

我的主要类(class):

public class SpringDemo {
public static void main(String[] args) {
final ApplicationContext applicationContext = new ClassPathXmlApplicationContext("knights-aop.xml");
final Knight braveKnight = (Knight) applicationContext.getBean("knight");
braveKnight.embarkOnQuest();
}
}

我也尝试添加:aopalliance.jar & aopalliance-alpha1.jar 单独和一起,但错误不会消失。

这里有类似的问题:spring nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice

###########EDIT##########更新:项目中的其他类##
Minstrel.java

package com.java.spring;

public class Minstrel {
public void singBeforeQuest(){
System.out.println("Fa la la Theknight is so brave!");
}
public void singAfterQuest(){
System.out.println(
"Tee hee he The brave knight did embark on a quest!");
}
}

BraveKnight.java

package com.java.spring;

public class BraveKnight implements Knight {
private Quest quest;

BraveKnight(Quest quest) {
this.quest = quest;
}

@Override
public void embarkOnQuest() {
quest.embark();
}
}

RescueDamselQuest.java

package com.java.spring;

public class RescueDamselQuest implements Quest {

@Override
public void embark() {
System.out.println("Damsel rescue quest is on.");
}
}


我使用的是 Spring 3.2
##################EDIT2##################
我是不使用 Maven。请不要提供 Maven 相关的解决方案,除非没有 Spring AOP 是不可能的。
项目快照:
enter image description here
在 SPRING LIBRARY 里面我有所有用 Spring 下载的 jar。是否有可能某些特定于 spring 的 jar 与 aopalliance jar 冲突?

如果有人有没有Maven的类似和简单的工作示例,请提供。

谢谢
~莫希特

最佳答案

看起来您只是将 aopalliance jar 添加到 IDE(Eclipse ?)的 build 类路径。这说明 IDE 没有显示错误并接受构建应用程序。但实际上,你还必须将它添加到 run classpath

根据您使用的 IDE,另一个菜单可能允许对其进行配置。但是,如果您想在 IDE 之外运行它,则必须将 jar 放在您的普通类路径中,或者将其与其他现有 jar 一起放置,或者(会更好)通过更改用户或系统类路径以包含包含的文件夹 jar 。

如果您需要并且如果我知道您的系统,我可以详细说明...

关于java - Spring:嵌套异常是 java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26540782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com