伺服器部署 FineBI5.1 工程過程中,遇到報錯 500 的情況,如下圖所示:
在 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 的版本都是不同的,因此在使用的時候,需要注意匹配。
注1:這裏以 Tomcat 為例進行示範,其他容器同樣為copy到對應的容器的 lib 下。
注2:%JAVA_HOME%/jdk/lib下的tools.jar 為部署伺服器本地 JAVA_HOME裏面的檔案,不是開發計算機本地。
將%JAVA_HOME%/jdk/lib下的tools.jarcopy到部署的伺服器中,即%TOMCAT_HOME%/lib下和%TOMCAT_HOME%/webapps/工程名/WEB_INF/lib下,如下圖所示:
若环境变量指向的%JRE_HOME%/bin下无 attach.dll 文件,还需将%JAVA_HOME%/jdk/jre/bin下的attach.dll拷贝到此路径下,如下图所示:
若環境變數指向的%JRE_HOME%/bin下無 attach.dll 檔案,還需將%JAVA_HOME%/jdk/jre/bin下的attach.dllcopy到此路徑下,如下圖所示: