将springboot的jar包添加到windows服务及遇到的问题及其解决思路

设置成windows服务

关于如何将jar包设置成windows服务这部分在 这篇博客 中写的很详细了,这里就不再赘述

配置成windows服务过程中碰到的问题

配置后在日志中查看报错信息为: 看日志中报错信息为: %1 不是有效的 Win32 应用程序

实际在下载Procrun后的解压包中,本身就分为64位与32位之分,使用的时候选择对应的版本即可

H2数据库权限问题(严格来讲,这个不属于配置服务的问题,应当属于H2数据库使用相关问题,但确实排查了很久。。。)

现象如下:

  1. 正常配置服务也可以启动,并且能正常打开应用,但是在登录的时候却报user不存在的问题(只有这个时候才使用到了数据库,用的是h2数据库)。
  2. 使用java -jar 能够正常启动,并且能够正常访问user信息。

思路
最开始就是想到这种服务能否调试

  • 调试服务
    运行服务为控制台模式,你需要使用 //TS// 参数。如
rem 安装
"%SRV%" //TS//prun-yaojingcai-erp
echo 安装服务完成。

调试无果的过程中,猜测是h2数据库文件的与用户访问的权限问题,因为我的配置文件中关于h2数据库的初始配置是

jdbc:h2:file:~/.h2/data-migration-new;AUTO_SERVER=TRUE

这个在windows下面的话,默认是生成在当前用户文件夹下面,。用java -jar的话是当前用户,访问自己用户文件夹下面的问题肯定是没有问题,但是如果添加为windows系统服务,是否就因为访问权限的问题访问不到呢?
因此尝试将h2数据库文件修改到相对jar应用上层data文件夹下面,代码如下:

jdbc:h2:file:./data/data-migration-new;AUTO_SERVER=TRUE

果然,修改后,服务中的也可以正常运行了。

猜你喜欢

转载自www.cnblogs.com/falcon-fei/p/11680782.html