2016-06-28 10 views
0

このトピックに基づいて他の質問を行ったが、役に立たなかった。NoClassDefFoundError spring aopを使用しているとき

これは私のSpringConfiguration.xmlです:

<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="game" class="SpringAoP.Game"></bean> 

    <bean id="audience" class="SpringAoP.Audience"></bean> 

    <aop:config> 
     <aop:aspect ref="audience"> 
      <aop:pointcut id="play" expression="execution(* SpringAoP.Game.Play(..))"></aop:pointcut> 
      <aop:before pointcut-ref="play" method="takeSeats"></aop:before> 
      <aop:before pointcut-ref="play" method="shout"></aop:before> 
      <aop:after method="applaud" pointcut-ref="play"></aop:after> 
      <aop:after-throwing method="badApplaud" pointcut-ref="play"></aop:after-throwing> 

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


</beans> 

これは私のGame.javaです:

package SpringAoP; 


public class Game { 

    public void Play(){ 
     System.out.println("Game Started"); 
    } 
    public void enter(){ 
     System.out.println("Jump Jump wowowowowowwwhahaaa"); 
    } 
} 

これは私のAudience.javaです:

package SpringAoP; 

public class Audience { 
    //before match 
    public void takeSeats(){ 
     System.out.println("Audience are now seated"); 
    } 

    public void shout(){ 
     System.out.println("Manchester Utd ! OOHOHOHOHOHOHOHOOOOOOOOOOOO"); 
    } 

    //after match 
    public void applaud(){ 
     System.out.println("TATATATATATATATATATA!!! Great Game"); 
    } 

    public void badApplaud(){ 
     System.out.println("boooooooo ! Bad Game"); 
    } 
} 

これは私のメインクラスです:

package SpringAoP; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 


    public class StartGame { 
     public static void main(String[] args){ 
      ApplicationContext ac = new ClassPathXmlApplicationContext("Game.xml"); 

      Game football = (Game) ac.getBean("game"); 
      football.enter(); 
     } 
    } 

私はNoClassDefFoundErrorがを取得するプログラムを実行すると:

これはスタックトレースです:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [Game.xml]; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:413) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251) 
    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:129) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at SpringAoP.StartGame.main(StartGame.java:17) 
Caused by: java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at org.springframework.aop.config.ConfigBeanDefinitionParser.getAdviceClass(ConfigBeanDefinitionParser.java:411) 
    at org.springframework.aop.config.ConfigBeanDefinitionParser.createAdviceDefinition(ConfigBeanDefinitionParser.java:367) 
    at org.springframework.aop.config.ConfigBeanDefinitionParser.parseAdvice(ConfigBeanDefinitionParser.java:333) 
    at org.springframework.aop.config.ConfigBeanDefinitionParser.parseAspect(ConfigBeanDefinitionParser.java:228) 
    at org.springframework.aop.config.ConfigBeanDefinitionParser.parse(ConfigBeanDefinitionParser.java:116) 
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1424) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1414) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:187) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:141) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:110) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391) 
    ... 14 more 
Caused by: java.lang.ClassNotFoundException: org.aopalliance.aop.Advice 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 63 more 
C:\Users\Admin\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 
BUILD FAILED (total time: 0 seconds) 
+0

この種のエラーは、ビルドツールにいくつかのjarファイルがないか、または指定されていない場合にのみ発生します。プロジェクトビルドの設定を確認してください。私はeclispeで働いている、私はネットビーンについて考えていない。 –

答えて

0

aopallianceを追加しようとしあなたの依存:

<dependency> 
    <groupId>aopalliance</groupId> 
    <artifactId>aopalliance</artifactId> 
    <version>1.0</version> 
</dependency> 
+0

私はnetbeansを使用しています!どうすればいいのか教えてください。 – Jois

+0

jarファイルを追加する方法を知っています!どうすればいいですか? – Jois

+0

http://central.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar – chengpohi

0

私はあなたがいくつかの依存関係を欠いているかもしれないと思います。これは私のaopデモpomです。

<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>3.2.5.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>1.8.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>org.springframework.context</artifactId> 
     <version>3.2.5.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-expression</artifactId> 
     <version>3.2.5.release</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>com.springsource.org.aspectj.weaver</artifactId> 
     <version>1.7.2.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aopalliance</groupId> 
     <artifactId>com.springsource.org.aopalliance</artifactId> 
     <version>1.0.0</version> 
    </dependency> 
</dependencies> 
+0

私はnetbeansを使用しています。この依存関係を追加するにはどうすればよいですか? XMLファイルを作成するこのコードを追加しますか?それをプロジェクトにどのように注入できますか? – Jois

関連する問題