No Persistence provider for EntityManager named ***

最近负责一个前人写的运维系统的需求升级,用的MVC框架配置文件贼多不说,里面用的技术很老jbpm这种都已经快被淘汰掉的技术,连eclipe上的插件都不给下载了,使用的时候简直步履蹒跚。好不容易把需求搞完,和前端对接完接口,把项目上传到git上,没想到第二天启动服务时候就给我报了这个错误。

No Persistence provider for EntityManager named org.jbpm.domain

根据日志查找到错误来自于以下文件

 当时我就疑惑了,之前写代码阶段自己运行那么久也没报这个错误,怎么现在突然启动报这个错。首先,对于没用过的技术我第一反应就是上网查找报错的解决方案,网上那么多的帖子总共就以下两种问题和解决方案。

问题一:可能是由于你的xml文件不在规定路径下,导致无法找到该文件做持久化

解决方案:查看你的persistence.xml文件是否在  **/src/META-INF/persistence.xml  路径中

问题二:使用的jar包不对

解决方案:在persistence.xml  文件中<persistence-unit name="xxxx">后面添加如下代码

<provider>org.hibernate.ejb.HibernatePersistence</provider>
  • 添加与工程匹配的hibernate-entitymanager.jar
    注意:是hibernate,并非org.hibernate
<dependency>
    <groupId>hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.4.0.GA</version>
</dependency>

 

这两种问题的解决方案我都看了和尝试了,结果却并没有解决。首先,我之前那么久都可以运行,而且那个文件我也没有动过,第一种问题先排除。其次,第二种方案我这边项目前人代码有注释掉,用了另一种jar包是因为他有一个文件继承了这个jar包中的一个类,而且我也没有动过这些,之前都可以运行,但是我还是改了试了一下,发现确实没有用。

当网上提供的方案看了百度整整两页还没有解决的时候,这时候 我开始怀疑我是否不小心动了什么文件却不知道。因此我查看了项目的local history,查看半天,发现除了多了配置git时候自动生成的几个文件,别的代码都没有问题。这下又开始犯难了,找身边的人询问有没有人了解过这个技术,结果都不知道。解决bug搞了一上午还没有解决,真的觉得开始犯难了。这个时候我还没有意识到可能是git整合时候产生了问题,毕竟我文件确实上传到远程仓库中了。下午,还在百度查问题的时候突然灵机一动,我原来在笔记本上运行过这个项目,虽然需求代码什么的还没有写,但是只要能跑起来就能对比出问题了。

说干就干,拿我的笔记本一运行,还真可以运行起来。这时候我赶紧把我的写的代码全部整合到笔记本中的这个老项目中,再一运行,还是可以成功运行。这个时候我终于确定问题就出在我idea项目整合git,上传文件时候出了问题。确定了问题后立马卸载了idea与gie,重新装了idea后重新导入项目,果然可以正常运行了。

本来就是一个问题解决方法记录一下解决方法就可以了,但是这次因为这个自己项目上传到git产生的问题居然花费了一天的时间来解决,效率太低下了。尽管这个技术以后可能很少会接触了毕竟是被淘汰的技术,但是解决没接触的技术问题的思路还是值得记录的。

首先,当一个人负责一个项目的时候,不管是接手他人项目还是自己写的项目,当项目刚开始可以正常启动后,一定要备份一份!!!以防后期项目报错或者意外丢失,因此,U盘或者电脑存档并且上传到远程仓库是十分必要的。

其次,遇到没接触过的技术的问题时候,先根据报错日志找到报错的位置根源,并找到与之有关系的几个文件,看不出错误的话就百度查找网友的解决方案分享。

然后,当尝试了网友的解决方案后还未解决时,这个时候可以思考你最后一次可以正常运行的时候是什么时候,通过项目的历史查看那之后项目还有什么改动,查看是否自己不小心改动了什么文件或代码。其实这一步可以与上面的那一步相调换,不过我们既然说了是对于没接触的技术的问题,那相信你如果是因为代码问题的话,你检查时候也不会知道为什么错,还得上网百度查找。

最后,当网友分享的解决方案都没有解决的时候,这个时候将你备份的可以运行的初始版本的项目拿出来,一步一步添加写的代码进行排错。

养成这样一个良好的自我纠错以及解决问题的思维与方法,对于以后解决别的bug也都是有益无害的。仅此,与诸位网友分享。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值