2014-02-21 5 views
0

Eclipse 시작시이 오류가 발생합니다. PrepareForTest 주석을 사용한 단위 테스트가 정상적으로 실행됩니다.주석 메타 데이터를 읽는 중 유형을 클래스로로드하지 못했습니다.

나는 pom.xml에 의존성으로 mockito-core, powermock-module-junit4, powermock-api-mockito를 추가했습니다.

이 오류의 원인은 무엇입니까? 감사!

2014-02-21 09:41:55,896 WARN [AnnotationAttributesReadingVisitor] Failed to classload type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may be unavailable. 
java.lang.ClassNotFoundException: org.powermock.core.classloader.annotations.PrepareForTest not found from bundle [com.app.tool] 
    at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:103) 
    at org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:690) 
    at org.springframework.core.type.classreading.RecursiveAnnotationAttributesVisitor.visitEnd(AnnotationAttributesReadingVisitor.java:167) 
    at org.springframework.asm.ClassReader.a(Unknown Source) 
    at org.springframework.asm.ClassReader.accept(Unknown Source) 
    at org.springframework.asm.ClassReader.accept(Unknown Source) 
    at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:54) 
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80) 
    at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101) 
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:237) 
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242) 
    at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84) 
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1419) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1409) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) 
    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.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:164) 
    at org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:136) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436) 
    at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$301(AbstractDelegatedExecutionApplicationContext.java:69) 
    at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$1.run(AbstractDelegatedExecutionApplicationContext.java:186) 
    at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) 
    at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.normalRefresh(AbstractDelegatedExecutionApplicationContext.java:182) 
    at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$NoDependenciesWaitRefreshExecutor.refresh(AbstractDelegatedExecutionApplicationContext.java:89) 
    at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175) 
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) 
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508) 
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) 
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:161) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5123) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5407) 
    at org.apache.geronimo.tomcat.GeronimoStandardContext.access$201(GeronimoStandardContext.java:121) 
    at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:723) 
    at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:48) 
    at org.apache.geronimo.tomcat.valve.ProtectedTargetValve.invoke(ProtectedTargetValve.java:53) 
    at org.apache.geronimo.tomcat.GeronimoStandardContext.startInternal(GeronimoStandardContext.java:459) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 
    at org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:310) 
    at org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:567) 
    at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:1000) 
    at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:271) 
    at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105) 
    at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:555) 
    at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110) 
    at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145) 
    at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119) 
    at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176) 
    at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:45) 
    at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254) 
    at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:301) 
    at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105) 
    at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:555) 
    at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:110) 
    at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:145) 
    at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:119) 
    at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176) 
    at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:45) 
    at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254) 
    at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:301) 
    at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105) 
    at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:127) 
    at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:569) 
    at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:386) 
    at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:466) 
    at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:225) 
    at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:710) 
    at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:689) 
    at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:255) 
    at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125) 
    at org.apache.geronimo.osgi.web.extender.WebContainerExtender$WebApplications.register(WebContainerExtender.java:326) 
    at org.apache.geronimo.osgi.web.extender.WebContainerExtender.deploy(WebContainerExtender.java:257) 
    at org.apache.geronimo.osgi.web.extender.WebContainerExtender.access$100(WebContainerExtender.java:63) 
    at org.apache.geronimo.osgi.web.extender.WebContainerExtender$WebBundleTrackerCustomizer.addingBundle(WebContainerExtender.java:183) 
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:482) 
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:1) 
    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:262) 
    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:234) 
    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:457) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847) 
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) 
    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1523) 
    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1459) 
    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1454) 
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:391) 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299) 
    at org.apache.geronimo.aries.ApplicationUpdateHelper.updateBundle(ApplicationUpdateHelper.java:167) 
    at org.apache.geronimo.aries.ApplicationGBean.updateApplicationContent(ApplicationGBean.java:184) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:76) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:602) 
    at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) 
    at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131) 
    at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:883) 
    at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245) 
    at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:344) 
    at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:602) 
    at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) 
    at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131) 
    at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:883) 
    at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245) 
    at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) 
    at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468) 
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1486) 
    at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:96) 
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1327) 
    at java.security.AccessController.doPrivileged(AccessController.java:314) 
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1426) 
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:847) 
    at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:602) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:327) 
    at sun.rmi.transport.Transport$1.run(Transport.java:177) 
    at sun.rmi.transport.Transport$1.run(Transport.java:174) 
    at java.security.AccessController.doPrivileged(AccessController.java:314) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:173) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:780) 
Caused by: java.lang.ClassNotFoundException: org.powermock.core.classloader.annotations.PrepareForTest 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:516) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:432) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:420) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:690) 
    at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:348) 
    at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) 
    at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:99) 

답변

1

따라서이 코드는 org.powermock.core.classloader.annotations.PrepareForTest을 찾을 수 없습니다. osgi와 관련이있는 것처럼 보이지만이 코드의 OSGI 매니페스트에 잘못된 설정이있을 것으로 예상됩니다.

당신은 그 방향으로, 즉 이클립스 OSGI 클래스 로더가 왜 로딩을 거부하는지 조사해야합니다. 몇 가지 종속성이있는 것처럼 OSGI 규칙 (예 : BND)을 추가해야 할 수도 있습니다.