2015-04-30 4 views
0

Я хочу использовать класс TitanGraph в своем проекте IntelliJ. Поэтому я включил все необходимые библиотеки в свой проект. Проект компилируется просто отлично, но как только Spring пытается создать компонент с этим типом класса, он генерирует исключение ClassNotFoundException. Мой боб:Spring ClassNotFoundException при создании бобов

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

В моем файле XML я имею следующую ссылку:

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

Что я делаю неправильно? Возможно ли, что некоторые библиотеки не включены во время выполнения?

EDIT:

StackTrace

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

Пожалуйста, добавьте stacktrace – Jens

+0

Также вы должны добавить их в сборку развертывания –

+0

Я добавил stacktrace. Все библиотеки были добавлены через Project Settings -> Modules -> MyModule -> Dependencies -> + -> Select jars -> Apply – Casper

ответ

1

1) я не думаю, что это причина, но если вы определяете компонент в конфигурации Java, как вы это сделаете, то вам не нужно определите его также на основе xml.

2) проверьте, что вы включили зависимость в правильную область действия, я не знаю, используете ли вы maven или плющ или еще что-то но, но если зависимость установлена ​​только для тестирования, например, и вы запускаете приложение как основной метод, а не в контексте тестирования, тогда у вас не будет доступного класса.

+0

Мои зависимости не были включены в путь к классам, потому что папка зависимостей не была. – Casper

+0

Так оно решено? вы должны ответить на ваш вопрос тогда :) –

Смежные вопросы