Linux 或者 winsever 部署,有时候启动会报错 404 ,或者 tools.jar 不匹配,在检查过 tools.jar 后并没有发现问题,这种情况可能是因为系统限制或者缺少部分系统文件导致 FineAssist 和 FinePrivacy 无法加载导致的。
出现这种问题可能的 2 种原因:
FineAssist 或者 FinePrivacy 无法复制。
FineAssist 和 FinePrivacy 可以复制,但是无法加载。
解决方法就是避开这两步,强制加载自定义路径下的 FineAssist 和 FinePrivacy 。
两种现象的解决方案是一样的。
启动后查看 temp 文件夹下:
没有如图所示的 FineAssist.dll 和 FinePrivacy.dll(Linux 下是 so 文件),则说明 FineAssist 和 FinePrivacy 无法复制。
查看日志(需要查看完整日志如:catalina.out,fanruan.log 没有记录相关日志):
[DEBUG]Can't load library: E:\lingpai\tomcat-win64\tomcat-win64\temp\FinePrivacy_x86_645618361827197160860.dll
java.lang.UnsatisfiedLinkError: Can't load library: E:\lingpai\tomcat-win64\tomcat-win64\temp\FinePrivacy_x86_645618361827197160860.dll
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1827
出现如图所示类似的报错,则说明是 FinePrivacy 无法加载导致的。
使用解压文件打开 fine-core-10.0.jar ,路径com\fr\jvm\assist
将对应操作系统的 FineAssist 和 FinePrivacy 文件拷贝出来,放到外面的文件夹下。
如:Windows64 位系统需要拷贝 FineAssist_x86_64.dll 和 FinePrivacy_x86_64.dll 。
以 Windows64 位系统为例,Tomcat 部署工程,假设将 dll 文件放在D:\tomcat\bin下
修改catalina.bat,配置 JAVA_OPTS :
set JAVA_OPTS = -Dfineassist=D:\tomcat\bin\FineAssist_x86_64.dll -Dfineassist.copy=disable -Dfineprivacy=D:\tomcat\bin\FinePrivacy_x86_64.dll -Dfineprivacy.copy=disable
Linux 下部署修改 catalina.sh(以amd64为例,假设文件放在/opt下)
JAVA_OPTS = '-Dfineassist=/opt/FineAssist_x86_64.so -Dfineassist.copy=disable -Dfineprivacy=/opt/FinePrivacy_x86_64.so -Dfineprivacy.copy=disable'
国产专用机,必须按照添加上述启动参数。