WebcatEE 常见问题


MySQL 驱动问题

已知: 6.x.x, 8.0.18 版本的驱动在查询数据库表时,会返回当前MySql实例的所有数据库的表;

MySql 官方的驱动很多个版本都有各种各样的BUG, 强烈建议使用 5.1.47, 5.1.48, 5.1.49 这几个版本的驱动。

MySQL 数据库不显示表的数据行数和容量

请正确配置数据库的 schema

Oracle 不显示表

请正确配置数据库的 schema

提交数据中文乱码

请修改 TOMECAT_HOME\conf\server.xml, 添加 URIEncoding="UTF-8"


<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" URIEncoding="UTF-8"/>

数据库中文乱码

请正确设置数据库的字符集

Tomcat日志输出乱码。

一般发生在中文环境的 Windows 操作系统上,且操作系统的默认文件编码为 GBK。


# TOMCAT_HOME/conf/logger.properties
java.util.logging.FileHandler.encoding=GBK

帮助文档中文乱码

TOMCAT_HOME/conf/web.xml, 添加 fileEncoding 参数

修改完之后重启Tomcat,然后强制刷新页面或者清空浏览器缓存再次访问。帮助文档是静态页面,Tomcat默认会对静态文件做缓存设置。


<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>fileEncoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

CSV 导出文件用 Excel 打开中文乱码

中文操作系统环境下,请使用文本编辑器将 CSV 文件编码修改为 GBK,或者在导出时选择文件编码:GBK

Linux上Tomcat启动慢的解决办法

有两种解决办法:

1)在Tomcat环境中解决


# 可以通过配置JRE使用非阻塞的Entropy Source。
# 在catalina.sh中加入java启动选项:
-Djava.security.egd=file:/dev/./urandom

2)在JVM环境中解决


# $JAVA_PATH/jre/lib/security/java.security
securerandom.source=file:/dev/urandom

# 替换成
securerandom.source=file:/dev/./urandom

Oracle 连不上

Windows 环境请先检查防火墙,telnet 一下 Oracle 的端口号看通不通。

如果不是防火墙的原因,请先百度: Oracle SID SERVICE_NAME, 搞清楚 SID 与 SERVICE_NAME 的区别。

Oracle 连接的三种方式,确保 WebcatEE 后台填写的URL是正确的:


jdbc:oracle:thin:@//<host>:<port>/<service_name>
jdbc:oracle:thin:@<host>:<port>:<SID>
jdbc:oracle:thin:@<TNSName>

其他任何数据库服务连不上

a. 先检查防火墙,确保不是防火墙的问题;

b. 确认所使用的驱动版本,尽量使用 Type4 的驱动,Type2的驱动一般会要求客户端安装数据库客户端程序。

c. 检查连接信息填写是否正确,如有可能请咨询 Java 开发人员或者搜索 JDBC URL。

d. 使用其他客户端工具连接一下试试,确保数据库服务器是运行的且连接正常。

WebcatEE 安装和启动均正常,但是查询时报502错误

a. 检查是否开启了防火墙,防火墙是否有反SQL注入功能;如果有参考《防火墙和SQL注入》文档。

b. 检查是否使用了Nginx或者其他反向代理软件,如果有查看是否开启了反SQL注入功能;如果有参考《防火墙SQL拦截》文档。