2015-04-30 52 views
0

我想在我的IntelliJ项目中使用类TitanGraph。因此,我在我的项目中包含了所有必要的库。该项目编译得很好,但只要Spring试图用这个类类型创建一个bean,它就会抛出一个ClassNotFoundException异常。 我的豆:创建Bean时发生Spring ClassNotFoundException

public class GraphEngineGlue { 
    @Bean 
    public TitanGraph titanGraph() { 
     return TitanFactory.open(configuration); 
    } 
} 

在我的XML文件,我有以下几点参考:

<bean class="my.package.GraphEngineGlue"/> 

我在做什么错?运行时是否可能包含某些库?

编辑:

堆栈跟踪

3664 [main  ] ERROR com.mypackage.web.spring.BootstrapAwareContextLoaderListener - Unexpected error during initialization, cause: java.lang.ClassNotFoundException: com.thinkaurelius.titan.core.TitanGraph 
java.lang.IllegalStateException: Cannot load configuration class: com.mypackage.GraphEngineGlue 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:368) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:244) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:633) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410) 
    at com.mypackage 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) 
    at com.mypackage 
    at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:782) 
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424) 
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:774) 
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:282) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
    at com.mypackage 
    at com.mypackage 
    at com.mypackage 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at com.mypackage.Main(Main.java:10) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 
Caused by: java.lang.NoClassDefFoundError: com/thinkaurelius/titan/core/TitanGraph 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2693) 
    at java.lang.Class.getDeclaredMethods(Class.java:1967) 
    at org.springframework.cglib.core.ReflectUtils.addAllMethods(ReflectUtils.java:348) 
    at org.springframework.cglib.proxy.Enhancer.getMethods(Enhancer.java:421) 
    at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:456) 
    at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) 
    at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) 
    at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377) 
    at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:317) 
    at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:125) 
    at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:98) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:358) 
    ... 39 more 
Caused by: java.lang.ClassNotFoundException: com.thinkaurelius.titan.core.TitanGraph 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 52 more 
+1

请添加堆栈跟踪 – Jens

+0

还应该将它们添加到部署程序集 –

+0

我添加了堆栈跟踪。通过项目设置 - >模块 - > MyModule - >依赖关系 - > + - >选择瓶子 - >应用 – Casper

回答

1

1)我不认为这是原因,但如果你在一个Java配置定义bean为你做,那么你就不需要定义它也是一个基于xml的配置。

2)检查你是否在正确的范围内包含了依赖项,我不知道你是否使用maven或ivy或whatnot,但是如果依赖项设置为仅用于测试例如,你运行应用程序作为一种主要的方法,而不是在测试环境中,那么你将不会有可用的类。

+0

添加了所有库。我的依赖关系未包含在类路径中,因为依赖关系的文件夹不是。 – Casper

+0

那么它解决了吗?那么你应该回答你的问题:) –