记一次给win10客户电脑上装上tomcat程序后,启动出问题的情况

情景描述

本来是给一个客户安装我们公司的bs程序,以前也给其他公司安装过,问题都不大,这次客户因为在国外,使用向日葵进行远程操作,网络极度不稳地,超级卡,过程相当崩溃。不论是数据库的安装,bs的部署都遇到了好多问题。最诡异的当属bs的部署。

​ 前期数据库的安装,以及仪器对应的服务程序都已经安装完毕,且已经能正常工作。后期因为客户需要数据接口,那么我就要安装bs程序,按照顺序,先将jdk安装,并配置好环境变量。然后tomcat(tomcat其实就是个绿色压缩包,其实也可以不需要配置环境变量的), 然后把bs程序需要调用的dll文件放入d盘中,并将路径添加到环境变量的path中。然后将我们的bs程序直接部署到webapps文件夹下,调试阶段,启动tomcat,命令窗口也正常启动,显示bs项目正常部署完成。

但是界面就卡在完成界面了,因为我们的项目启动后会自动与另外一个c++的的服务程序进行socket通信,正常情况下是会日志打印的,结果等了很久都没有日志信息,开始以为tomcat有问题,但是登录 localhost:8080 能够显示出tomcat的网页的。而且通过postman进行接口测试,有些接口又是可以用的。而且调用一个接口,就会打印相应的日志。

排错之旅

  • 最开始以为是tomcat或者jdk环境变量出现问题,但反复检查,重新重装jdk,tomcat,更换tomcat版本,问题还是一样
  • 后来,怀疑是程序问题,虽然程序在自己电脑上面能够运行,但这种情况还是不免怀疑。正常情况下为什么会打印消息,因为在tomcat服务器启动的时候,我设置了web.xml中启动后就需要实力servlet的

感觉好像这个servlet不能实例化一样,为了验证自己的猜想,就在init方法中加入日志,果然没有打印

  • 我一度以为是tomcat没有实例化这个servlet,但是web.xml配置确实正确的。但tomcat又没显示错误信息。后来我一直查询,没有成功的问题。但查了很多都不是。

  • 后来我在想是不是环境有问题,因为客户是win10系统,我是win7系统。然后将自己的工作笔记本装成win10系统,然后按照给客户装的过程在自己电脑上面过一遍,装jdk,配置环境变量,装tomcat,复制dll,设置path,最后启动tomcat果然,一样的问题!!!!给了我希望~~~

  • 这个时候我认为是win10系统的问题。然后又找了很多win10 系统tomcat卡住。结果都不是我这种情况。最后我干脆在我电脑上idea试着把程序跑起来,结果出现了错误信息了!!!!!!

好嘛,结果是因为我bs里面用了jni,生成的dll里面需要的libraries没有找到。这时候犯难了,少什么依赖呢。百度找到一款软件可以查看dll依赖 --dependencies, win7、8、10可使用,另一款depends win xp、7 、8可使用

绿色版,解压即用,点击DpendenciesGui.exe启动程序,将dll文件拖动到窗口里

结果显示缺少MSVCP100.dll文件。

那就下载吧,注意要下载64位的哦,然后将此文件放到path路径当中,我直接放到我们公司的dll文件夹下,因为path都配置好了。重启引用就ok了

日志窗口正常。

后面再逆向分析,其实就是servlet没有实例化成功。而没有实例化成功的原因,是因为在实例化的时候,执行静态代码块的时候出现问题了。只是当时我没有看到错误信息,不清楚问题出现在哪里

而且tomcat的logs文件夹下其实有问题记录的,只是我当时不知道,后面才知道的。如果当时知道这个问题记录,应该会节省很多时间

posted @   野生程序猿_芯  阅读(228)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示