Springboot项目本地运行没有任何问题,能与前端以及数据库进行很好的连接,整体i代码都能完美运行,但将其打包成jar包后在服务器上运行却报错。

打包成jar包后在服务器上运行,能接收到前端所传输过来的数据,但却无法与数据库进行连接。查看日志发现,报如下错误:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.dao.AdminMapper.verifyPassword] with root cause org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.dao.AdminMapper.verifyPassword 在这里插入图片描述 在这里插入图片描述 查看前端发现所报的错误如下:post 500 在这里插入图片描述这种错误就是典型的后端服务其运行产生了相应的问题。这个时候所需要查的便是后端dao层以及mapper所写的关于与数据库进行映射的代码。但是,我们的项目在本地运行时,并没有报任何的错误,且整个项目都能完美的运行。所以,在代码方面是不可能有任何的问题的。这个情况下所可能产生的情况是,dao层和Mapper层在打包以后不在同一个目录下,导致在打包运行时不能扫描到。如下所示,就是我一开始所建立的目录结构,Mapper在图中resources层下,而dao层在图中的Java层下。同时,我也在配置文件中加入了相应的数据连接配置。在这种情况下,项目在本地运行没有任何的问题,但是当将其打包成jar包后便报无法与数据库进行连接。 在这里插入图片描述 在这里插入图片描述 打开jar包文件可以发现如下情况:Mapper在com的外面,而dao层均在com文件夹里。 在这里插入图片描述 错误改进:将所有的mapper中的xml文件写入dao层的目录下,同时对配置文件中的数据连接方法进行相应的改变。 在这里插入图片描述 在这里插入图片描述 通过对jar包文件进行查看,这个时候所打包的jar包中Mapper文件以及xml文件便在同一个层里。 在这里插入图片描述 通过以上的改正,最终jar包在服务上运行后,前端与后端之间能够进行完美的运行。

该文章版权属于小狐狸学编程
摘录自:https://blog.csdn.net/weixin_47698446/article/details/116067178

相关文章:

猜你喜欢
热门标签