历史版本2 :服务器部署引入 tools.jar 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题现象编辑

服务器部署 FineBI5.1 工程过程中,遇到报错 500 的情况,如下图所示:

222


2. 原因分析编辑

在 FineReport V10.0 & FineBI V5.1 中,引入了 Java Agent 和 JVMTI 技术,分别用于 AOP 编程和关键类保护以及强制内存回收的实现。

不管是 Java Agent 还是 JVMTI,都是 JVM 的 Agent,区别在于前者是 Java 的实现,后者是 C++ 实现,因此在运行时,除了需要有 JRE 以外,还额外需要 JDK 中的 tools.jar(包含java编译器、动态加载 Agent 等的工具包)。

tools.jar 是一个平台相关的工具包,不同的平台(Windows、Linux、OS X 等),不同的版本的 JRE,能正常使用的 tools.jar 的版本都是不同的,因此在使用的时候,需要注意匹配。

3. 解决方案编辑

注1:这里以 Tomcat 为例进行演示,其他容器同样为拷贝到对应的容器的 lib 下。

注2:%JAVA_HOME%/jdk/lib下的tools.jar 为部署服务器本地 JAVA_HOME里面的文件,不是开发计算机本地。

%JAVA_HOME%/jdk/lib下的tools.jar拷贝到部署的服务器中,即%TOMCAT_HOME%/lib下和%TOMCAT_HOME%/webapps/工程名/WEB_INF/lib下,如下图所示:

image.png

3. 注意事项编辑

若环境变量指向的%JRE_HOME%/bin下无 attach.dll 文件,还需将%JAVA_HOME%/jdk/jre/bin下的attach.dll拷贝到此路径下,如下图所示:

image.png