本文匯總一些部署成功後存取異常的報錯以及解決方案。
----啟動 404---
報錯 Lifecycle fatal error
問題描述:
1)報錯 Lifecycle fatal error : Please check the database service to ensure that it is available jdbc:[資料庫url]
2)Lifecycle fatal error : Please check the database service to ensure that it is available jdbc:hsqldb:file://E:\Tomcat\tomcat.ssl\webapps\webroot\WEB-INF/embed/finedb/db;hsqldb.tx=mvcc
解決方案:
1)看到這類報錯是遷移庫連結失敗了,需要先確認遷移庫正常可連,再進行遷移。
2)這類報錯說明本地 finedb 連不上,大概率是沒有權限,賦權限或者用管理者啟動。
error in script file
問題描述:
fanruan.log 中存在類似報錯:error in script file: SET DATABASE UNIQUE NAME HSQLDB64FD8E0138
解決方案:
有備份的換備份,沒備份的只能修復下 db.scripts,去掉問題 sql。
war 包部署問題
問題描述:
打 war 包出問題,出現報錯。
解決方案:
打 war 需要進入 webroot 目錄下,執行 jar -cvf webroot.war *,這樣打出來的 war 包才是可以正常載入的。
啟動程式中報錯類似:Caused by 或 NoClassDefFoundError
問題描述:
啟動程式中報錯類似:Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.server.ChunkedOutput。或 NoClassDefFoundError,這類報錯
解決方案:
說明伺服器缺少 jar 包,需要補齊缺少的 jar 包。
報錯類似org.apache.catalina.LifecycleException
問題描述:
報錯類似:org.apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]]
java.net.BindException: 地址已在使用
解決方案:
檢查埠是否被進程佔用,或者上次服務進程沒有關閉。
存取不了tomcat歡迎頁面,檢查日誌發現是啟動成功的
解決方案:
這種情況大概率是伺服器埠沒有對外開放,這類現象多發於雲伺服器。開放埠即可。
resin部署報錯
自訂登入檔案丟失導致工程啟動報錯404
工程存取報錯404,後台日誌一直報錯redis
解決方案:
使用了錯誤的 redis 檔案,重新使用正確的 redis 檔案,保證redis 正常連結即可。
網路被設定為了專用網路導致所有埠不可用部分
問題描述:
現象一:
部署在 tomcat 裏的工程,啟動時報錯埠衝突,然而關閉 tomcat,在 cmd 裏輸入 netstat -ano |findstr "8080",又沒有進程在佔用;日誌裏面有報錯“Unrecognized Windows Sockets error: 10106: create”這個報錯會導致所有埠都被佔用,錯誤原因是網路被設定為了專用網路,可能是首次啟動軟體是彈出的那個框框沒有全部勾選。
現象二:
設計器啟動,設計視窗可以開啟,然而預覽範本或存取決策平台,均無法開啟頁面,設計器日誌有failed to create a child event loop的錯誤,開啟bin下的error.log,依然是埠占用。
解決方案:
以管理者身分開啟命令提示符,輸入 netsh winsock reset,重啟電腦,如果重啟後設計器沒有恢復,就刪除 C:\Users\user 下的 .FineReport100 快取檔案重啟設計器。
weblogic部署存取404
問題描述:
weblogic部署時顯示部署成功,但是工程的狀態是管理,點選啟動後,存取決策系統頁面報錯404,切換回weblogic的管理頁面發現,工程再次變成管理狀態。
解決方案:
關閉 weblogic 後重啟,確定關閉後沒有進程殘留即可。
啟動卡住,CPU 100%
原因分析:
打個堆疊看下,如果堆疊裏都是 FileSystemRepository.read 之類的,可能是誤開了叢集的檔案主動快取,需要關閉
ResourceModuleConfig.cacheable 和 ResourceCacheConfig.mode
解決方案:
可參考:Web叢集資料庫可配置項說明文檔
啟動報錯:cannot execute binary file
原因分析:
原因一:執行沒有沒有權限:startup.sh,catalina.sh,java執行檔案沒有權限
原因二:編譯環境不同:類似於64位系統裝了32位jdk,或者jdk1.8編譯的程式碼用jdk1.7執行
解決方案:
1)chmod 777 即可
2)換個符合編譯環境的jdk即可
啟動報錯:swift engine start failed
問題描述:
存取數據決策系統,顯示請求伺服器資料失敗,日誌報錯:swift engine start failed
原因分析一:
存在重複lib,導致模組啟動失敗
檢查webapps\webroot\WEB-INF\lib下是否有重複 jar 包
原因分析二:
若存在日誌「maximum weight must not be negative」,請檢查記憶體配置
當堆內記憶體太大時,導致堆外記憶體預設為負數,就會啟動失敗
工程報錯:java.util.zip.Deflater.deflateBytes
問題描述:
工程CPU使用高,日誌中報錯: java.util.zip.Deflater.deflateBytes
原因分析:
JDK的BUG,Gzip壓縮導致
解決方案:
管理者登入數據決策系統,點選「管理系統>系統管理>標準」,關閉「Gzip壓縮」選項
--- 啟動閃退 ---
無報錯但啟動閃退
原因分析:
主要是windows伺服器,可能安裝了殺毒軟體,導致閃退。
解決方案:
不管哪種殺毒軟體,都把設計器和java執行檔案加到信任庫中。
java.lang.IllegalArgumentException: object is not an instance of declaring class
解決方案:
出現這種報錯,一般是使用了低版本jdk1.8(大致是1.8.0_60以下的版本),換成高版本的jdk1.8即可