前言
由于一些原因,需要将一个在服务器上跑的boot项目弄到本地来跑,将jar包从服务器上下载到本地后,把jar包解压并修改配置后重新打包,然后将其运行的时却报入如下异常:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'entityManagerFactory' defined in class path resource
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]:
Invocation of init method failed; nested exception is
javax.persistence.PersistenceException: Unable to resolve persistence unit root URL
起初我还以为是我重新打包出错了,但是试了又试,还是这个错误。
这个项目是在服务器的docker里运行的,我试着在docker里重新运行这个项目,执行成功了。
接着我又将该项目拷贝到宿主机中,然后再宿主机看能不能跑起来,结果却失败了,执行日志里提示的异常信息与我本地所提示的异常信息是一样的,顿时懵圈!!!!
由于不会反编译,而且这个项目的源码又没有,只能在网上找方法。
在网上百度了半天,终于找到这个异常的解决方法:
可参考这篇博客:https://www.cnblogs.com/woshimrf/p/5887293.html
从这篇博客中才知道是hibernate自动配置的问题,而该项目中又没有用到hibernate,所以就将jar包中有关hibernate的包删掉后,重新跑起来。
成功运行!!!
尽管还是不懂为什么在docker里为啥就可以成功跑起来,在外面反而不行,希望有大佬可以指点迷津!