Oracle环境下访问Forms报Error 500错误的技术求助
环境背景
- Oracle 11g数据库
- Weblogic 11.3.6
- Webgate 3
- Forms&reports 11g(11.1.2.0)
- WebTier 11.1.1.9.0
问题现象
访问 http://localhost:7777/forms/frmservlet 时抛出Error 500--Internal Server Error,按照HTTP/1.1规范(RFC 2068 10.5.1)的说明,这是服务器遇到了未预期的异常,导致无法完成请求。你提到已经在Forms配置文件formsweb.cfg里设置了ssoMode = false,但没说后续结果,我结合这个配置调整给你梳理下排查方向:
排查&解决步骤
先确认
ssoMode配置真的生效了
修改formsweb.cfg后一定要重启Forms相关服务——包括WebTier的OHS和WebLogic上的Forms Managed Server,不然配置根本不会生效。另外检查下配置文件里有没有重复的ssoMode项,要是后面还有相同配置,会覆盖你前面改的内容。排查Webgate和Forms的SSO集成冲突
你的环境里有Webgate 3,这玩意儿是用来做Oracle SSO集成的。之前ssoMode=true的时候,Forms会自动和SSO系统交互,如果Webgate的配置有问题(比如SSO服务器连不上、agent配置错了),就很容易触发500错误。
现在改成ssoMode=false,Forms会跳过SSO验证,直接走本地认证,这时候重点看日志找具体异常:- 去WebLogic的Forms服务器日志(
DOMAIN_HOME/servers/WLS_FORMS/logs/WLS_FORMS.log)里搜500或者Internal Server Error,看完整的错误堆栈,比如是不是数据库连不上、Forms运行时权限不够; - 再看WebTier的OHS日志(
ORACLE_INSTANCE/diagnostics/logs/OHS/ohs1/access_log和error_log),有没有请求转发时的报错。
- 去WebLogic的Forms服务器日志(
检查Forms Runtime的核心配置
看看formsweb.cfg里的其他关键参数:比如form是不是指向了正确的.fmx文件,userid有没有配置合法的数据库连接信息(关掉SSO后,可能需要显式配置数据库认证的账号密码)。另外也可以通过WebLogic管理控制台直接测试Forms应用的可用性,确认应用本身部署没问题。权限和文件完整性检查
确认Forms安装目录下的文件(比如frmservlet相关的类文件、配置文件)权限正确,WebTier和Forms进程的用户要有读写权限。还要检查WebTier的mod_weblogic配置,确保请求能正确转发到WebLogic的Forms服务器上。
划重点:500错误本质是服务器端的未预期异常,最有效的排查方式就是抓详细的日志堆栈,找到具体的异常原因,再针对性解决。
内容的提问来源于stack exchange,提问作者Phanny

