2015-08-27 2 views
1

У меня есть проект Spring Boot, который отлично работал в течение нескольких дней. я не сделал каких-либо изменений в проекте конфигурации, но теперь, когда я пытаюсь запустить проект, у меня есть этот StackTrace:Spring boot java.lang.ClassNotFoundException: org.hibernate.engine.jndi.JndiException

Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.autoconfigure.web.ServerProperties org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration.properties; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverProperties' defined in class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org.hibernate.engine.jndi.JndiException 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:474) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:320) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946) 
    at ch.gma.nova.release.rest.Application.main(Application.java:31) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.autoconfigure.web.ServerProperties org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration.properties; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverProperties' defined in class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org.hibernate.engine.jndi.JndiException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:193) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:156) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130) 
    ... 7 more 
... 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
    ... 41 more 
Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.jndi.JndiException 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:665) 
    at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:760) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:728) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:707) 
    ... 82 more 

и вот моя конфигурация ПОМ:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.2.5.RELEASE</version> 
    </parent> 

    <groupId>ch.gma.nova.release</groupId> 
    <artifactId>RestReleaseApi</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>ch.gma.nova.release</groupId> 
     <artifactId>NovaReleaseBatch</artifactId> 
     <version>1.2-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.7</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.dozer</groupId> 
     <artifactId>dozer</artifactId> 
     <version>5.5.1</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

ли кто-нибудь имел такой же вопрос?

+0

выглядит как ваш buildpath ошибочна: 'Вызванный: java.lang.ClassNotFoundException: org.hibernate.engine.jndi.JndiException' – Joshua

+0

Да, и я нашел другое что это может быть из-за конфликта версий между hibernate-core и hibernate-entitymanager (http://stackoverflow.com/questions/20808649/classnotfoundexception-org-hibernate-service-jndi-jndiexception) – bryce

ответ

0

Я нашел способ, но я не знаю, является ли он лучшим ...
Я видел, что в моей зависимости NovaReleaseBatch (один из моих проектов) у меня была версия Hibernate-core, которая не была то же, что и Hibernate-entitymanager, который использует Spring Boot.
Итак, я исключил Hibernate-core из NovaReleaseBatch, и у меня была такая же версия Hibernate-entitymanager в моем пом.
Это работает, но если кто-то есть лучший путь ...

+0

Типичный случай конфликта зависимости , – px5x2

+0

Да, но я думал, что Spring-boot позаботится об этих проблемах ... – bryce

+0

Он делает для проекта начальной загрузки. Если вы смешиваете несколько проектов вместе, это сильно зависит от вашей сборки и того, как вы упаковываете эти приложения. –

0

Проверить here может быть проблема может решить.

-1

Я столкнулся с аналогичной проблемой один раз. Помня о том, что к настоящему моменту ваш проект все работает, и без изменения каких-либо конфигураций вы начали получать эту ошибку.

Запуск приложения покажет вам, что он не может создать компонент, но настоящая причина этой ошибки - это другое место, которое не указано при запуске приложения. Чтобы получить сообщение об ошибке, попробуйте «скомпилировать» проект, и он покажет вам фактическую ошибку, которая вызывает эту проблему. И если это проект maven, «компилировать» здесь я имею в виду, чтобы ваша цель сборки была «компиляцией».

Эта вещь работала для меня :)

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