本文汇总一些部署成功后访问异常的报错以及解决方案。
----启动 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即可