最新历史版本 :Websphere部署使用常见报错 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文介绍 FineBI 部署到 WebSphere 后,遇到的问题及解决方案。

2. 示例编辑

2.1 报错 404

问题现象

WebSphere 部署后输入访问地址,报错 Error 404:java.io.FileNotFoundException: SRVE0190E: 找不到文件:/decision,如下图所示:

1.png

原因分析 

查看 WebSphere 客户端是否安装了 OS(AIX),WebSphere 的 OS(AIX)对应的语言环境是否与 FineBI 使用不一致。

解决方案

比如查看 WebSphere 的 OS(AIX)的语言环境,默认情况下如下所示:

LANG=C LC_COLLATE="C"
LC_CTYPE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=

该语言环境 C 与 FineBI 中默认不一致,需要修改其为 en_US.UTF-8 ,并重启 WebSphere 服务器。

2.2 ERRORCODE=-4220,SQLSTATE=22021

问题现象

直接安装的 FineBI 能连上 IBM DB2 数据库,打包部署到 WebSphere 中后,连不上 DB2 数据库,报错:ERRORCODE=-4220,SQLSTATE=22021,如下图所示:

1.png

1.png

原因分析

当应用程序使用用于 JDBC 和 SQLJ 的 IBM 数据服务器驱动程序(也称为 JCC 驱动程序)并使用代码集 UTF-8 (代码页 1208 )连接到数据库时,它会抛出一个包含“捕获 java.io”的消息的 SqlException 。如果查询的字符列中的数据包含的字节序列不是有效的 UTF-8 字符串,则 CharConversionException”和 ERRORCODE=-4220 。

解决方案

「导航到服务器 > WebSphere application Servers > server_name > Java和流程管理 > 流程定义 > Java虚拟机」,勾选「调试方式」,在通用 JVM 参数中加入参数:-Ddb2.jcc.charsetDecoderEncoder = 3,如下图所示:

1.png

添加成功后,重启 WebSphere,重新连接 IBM DB2 数据库即可。

2.3 NO target servlet configgred for uri:/webroot/decision

问题现象

WebSphere 在成功部署 FineBI 工程后,输入访问地址(“服务器IP”+“端口”+“工程文件名”+“decision”)访问时,页面报错Error 404:com. ibm. ws. webcontainer. servlet. exception. NoTargetForURLException: No target servlet configured for uri: /webroot/decision,如下图所示:

1.png

原因分析

按照 Linux 系统 Websphere 服务器部署 部署时,在为 Web 模块映射上下文根,将上下文根改为工程名步骤时,可能填的非 webroot 工程名,则在输入访问地址时,使用 webroot 工程文件名访问就会报错 NO target servlet configgred for uri:/webroot/decision ,如下图所示:

1.png

解决方案

确定在步骤 7:为 Web 模块映射上下文根时输入的上下文根,比如上下文根输入的地址为/home/wasadmin,则在部署成功后的访问地址需要使用:http://ip:port/home/wasadmin/decision,如下图所示:

1.png

2.4 权限配置无法选择含有中文的登录用户所在字段数据表

问题现象

根据登录者信息查看对应数据 只能选择系统用户名,无法选择含有中文的「登录用户所在字段」数据表。

原因分析

 WebSphere 服务器编码问题。

解决方案

修改 WebSphere 编码为 UTF-8。

1)进入「服务器>服务器类型>WebSphere Application Server>SuiteServer>进程定义> Java 虚拟机」,

通用 JVM 参数修改为 -Dfile.encoding=UTF-8 -Ddefault.client.encoding=UTF-8,如下图所示:

12.png

2)进入目录%IBM%WebSphere/AppServer/profiles/AppSrv01/config/cells/10Cell01/nodes/10Node01/servers/SuiteServer

修改其中的 server.xml 中的参数genericJvmArguments="-Dfile.encoding=UTF-8 -Ddefault.client.encoding=UTF-8"

2.5 发送邮件失败

问题描述

FineBI 部署在 WebSphere 中,选择任意 BI 模板,执行定时调度任务,收不到邮件信息,显示邮件发送失败。如下图所示:

javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error

关键报错:

The certificate issued by CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US is not trusted;

原因分析

 WebSphere 环境下没有添加对 Digicert CA 证书的信任。

解决方案

从 IE 浏览器中下载 Digicert CA 证书,然后在 WebSphere 环境中添加该证书,重启 WebSphere 即可。

1)打开「IE浏览器>设置>Internet选项>内容>证书>受信任的根证书颁发机构>DigiCert Global Root CA」,颁发者也是 DigiCert Global Root CA 的证书,导出该证书,选择DER 编码二进制格式如下图所示:

1611910476642175.png

已下载的证书 digicert.cer 文件:证书文件.zip

2)导出后,把该文件上传到 WebSphere 服务器(每个节点)的任意目录下,如/home目录。

3)登录 WebSphere 控制台,选择「安全性>SSL证书和密钥管理>密钥库和证书」,如下图所示:

1611911528314094.png

4)点击NodeDefaultTrustStore,如下图所示:

1611911580665960.png

5)点击签署者证书,如下图所示:

1611911630491430.png

6)然后点击「添加」按钮,输入别名(可随意写),文件名写前面上传到服务器的证书文件的完整路径,如 /home/digicert.cer,数据类型选择二进制 ER 数据,然后点击应用。如下图所示:

1611910945201505.png

7)应用完成后点击保存到配置,然后重启 WebSphere ,登录 BI ,再发送邮件即可成功

注:其它节点也要部署该证书。

1611911049936376.png