2015-12-15 6 views
0

Я получаю следующее исключение, когда пытаюсь открыть свой сервер с помощью команды java -jar /home/kanishk/Documents/jetty-distribution-9.2.14.v20151106/start.jar. Полная трассировка стека avaialble на pastebin here.Исключение Spring boot при использовании spring-data-mongodb

java.lang.NoClassDefFoundError: org/springframework/data/repository/config/RepositoryConfigurationDelegate 
    at org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport.registerBeanDefinitions(AbstractRepositoryConfigurationSourceSupport.java:58) 
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:319) 
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:139) 
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:324) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:243) 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254) 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:609) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:648) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) 
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:130) 
    at org.springframework.boot.context.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:89) 
    at org.springframework.boot.context.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:51) 
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175) 
    at org.eclipse.jetty.plus.annotation.ContainerInitializer.callStartup(ContainerInitializer.java:140) 
    at org.eclipse.jetty.annotations.ServletContainerInitializersStarter.doStart(ServletContainerInitializersStarter.java:65) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:274) 
    at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:41) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:498) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:146) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:180) 
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:440) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:64) 
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:609) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:528) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:391) 
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:313) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:150) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:560) 
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:235) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) 
    at org.eclipse.jetty.server.Server.start(Server.java:387) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) 
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:354) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1255) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1174) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:321) 
    at org.eclipse.jetty.start.Main.start(Main.java:817) 
    at org.eclipse.jetty.start.Main.main(Main.java:112) 

Я использую Spring boot и пытаюсь получить доступ к данным в mongo db с использованием данных Spring.

Для этого, в application.properties, который находится в том же пакете, Application.java

spring.data.mongodb.host=localhost 
spring.data.mongodb.database=test 
spring.data.mongodb.port=27017 

Список зависимостей в pom.xml выглядит следующим образом:

<dependencies> 
     <!-- Spring Boot --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-jetty</artifactId> 
      <!-- Added by me --> 
     <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-tomcat</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <!-- Hibernate validator --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
     </dependency> 
     <!-- HSQLDB --> 
     <dependency> 
      <groupId>org.hsqldb</groupId> 
      <artifactId>hsqldb</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
     <!-- Guava --> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>${guava.version}</version> 
     </dependency> 
     <!-- Java EE --> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>jaxrs-api</artifactId> 
      <version>2.3.0.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-mongodb</artifactId> 
      <version>1.2.3.RELEASE</version> 
     </dependency> 
    </dependencies> 

Есть ли конфигурация, Мне не хватает?

+0

Почему вы не используете 'spring-boot-starter-data-mongodb'? Вы не должны исправлять версию, как вы, поскольку Spring Boot предоставляет их вам. –

ответ

1

Вы не упомянули версию с пружинным загрузочным стартером, но проблема в том, что для использования функций Spring-data требуется класс RepositoryConfigurationDelegate, который присутствует в банке с пружинными базами данных, а его нет в вашем POM , Три возможных решения: -

а) использование весенне-данных MongoDB-1.8.1-RELEASE.jar как он внутренне включает в весенне-данных-Commons-1.11.1-RELEASE.jar ИЛИ

б) Включайте весенний батон данных с вашими пружинными данными-mongodb-1.2.3-RELEASE.jar ИЛИ

c) Просто используйте spring-boot-starter-data-mongodb, который разрешит все (data-mongodb, data-commons) необходимые зависимости.

+0

Даже после добавления зависимости: org.springframework.boot весна-загрузка-стартер-данных MongoDB , я получаю такое же исключение – OneMoreError

+0

Pls делитесь обновленный П (полный) и подтвердить, если вы могут видеть, как данные Spring-data-mongodb & spring-data-commons становятся доступными для вашего пути к классу проекта вместе с соответствующими версиями. – Avis

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