SUSE--Tomcat日志,catalina.out乱码彻底解决20170618

1.    SUSE--Tomcat日志,catalina.out乱码彻底解决20170618

解:

1.1    关键字:

tomcat乱码

tomcat中文乱码

tomcat日志乱码

tomcat中文日志乱码

catalina.out乱码

catalina.out中文乱码

tomcat catalina.out乱码

tomcat catalina.out中文乱码

tomcat catalina.out中文日志乱码

SUSE tomcat catalina.out中文日志乱码

1.2    症状:

最近做东航物流微信公众号项目,遇到一个问题,网页显示中文信息正常,但是tomcata控制台输出中文为乱码,让手下同事尝试解决,一直没有解决。

最后采用问题逐一排查发定位到问题,是tomcat版本问题。

简要说一下问题排查经过:使用eclipse建立一个java project项目,打包部署到suse系统上,运行jar命令,发现能正常显示。

使用eclipse建立一个web项目,使用system.out输出日志,tomcat控制台出现乱码,使用PrintStream包装一下system.out,乱码解决。

web项目中添加Log4j记录日志,设置好utf-8,日志文件,能正常显示中文,控制台设置utf-8,还是乱码。

最后断定应该是tomcat出了问题,因为tomcat控制台使用suse系统字符集,虽然我已经将suse字符集改成utf-8,还是不行。

为了保险起见,重新装了系统,重新安装了整个环境,问题解决。下面列出问题的关键点,备以后查看。

tomcat安装目录:

/opt/apache-tomcat-7.0.62

1.3    工具:

Xshell5,SSH3.2.9,JDK1.8,TOMCAT7

参照问题:

114.   Xshell5--安装目录

113.   SSH3.2.9--安装目录

124.   SUSE -- JDK1.8安装实战

72. TOMCAT--tomcat7,apache-tomcat-7.0.62安装

1.4    环境:

vmware

参考文档:

150.   SUSE-- SUSE Linux EnterpriseServer 11 SP4汉化

119.   SUSE--语言设置,使用yast2设置

1.5    系统:

SUSE Linux Enterprise Server 11 SP4

安装包位置:

G:\软件\SUSE试用版20170331\ SLES-11-SP4-DVD-i586-GM-DVD1(1).iso

1.6    解决方案:

重装SUSE Linux Enterprise Server 11 SP4,参照文档:

112.   SUSE--安装SUSE Linux Enterprise 11

设置静态IP,参考文档:

118.   SUSE--设置yast2,设置静态IP,实战20170514

开启ssh服务

116.   SUSE--开启SSH服务20170511

安装jdk1.8,参考文档:

123.   SUSE-- JDK1.8安装实战

安装tomcat7,关键命令:

解压命令:unzip apache-tomcat-7.0.62.zip

tomcat解压后目录:cd /opt/apache-tomcat-7.0.62/bin

修改权限:chmod 755 *.sh

启动tomcat服务

./startup.sh

测试tomcat有无安装成功

http://localhost:8080

参考文档:

72. TOMCAT--tomcat7,apache-tomcat-7.0.62安装

设置SUSE Linux Enterprise Server 11SP4中文版本,参考文档

150.   SUSE-- SUSE Linux EnterpriseServer 11 SP4汉化

119.   SUSE--语言设置,使用yast2设置

1.7    测试数据:

1.11241114920

公众号的:这里隐藏

个人的:这里隐藏

http://localhost:8080/SpringMVCTutorial/wechat-api/TutorialWechatApi

http://localhost:8060/SpringMVCTutorial/wechat-api/TutorialWechatApi

1.8    SUSE命令:

tomcat中文测试

启动tomcat

cd  /opt/apache-tomcat-7.0.62/bin

./startup.sh

日志目录:

cd /opt/apache-tomcat-7.0.62/logs

tail -f catalina.out


jar包中文测试:

export PATH=$PATH:/usr/local/jdk1.8.0_121/jre/bin

source /etc/profile

java -jar /usr/local/TutorialLog4j.jar


1.9     效果:



 

<think> 我们正在讨论的是SUSE 11 SP4服务器上安装`zlib-devel-1.3.1-1.3.x86_64.rpm`的问题。根据用户提供的信息,这个rpm包可能是为CentOS/RedHat系统(el7)构建的,而目标是SUSE 11 SP4系统。我们需要考虑兼容性问题。 ### 关键分析点: 1. **系统兼容性**: - SUSE 11 SP4使用RPM包管理系统,但包命名规则和依赖关系可能与RedHat/CentOS不同。 - CentOS的RPM包通常以`.el7`(针对Enterprise Linux 7)为后缀,而SUSE 11 SP4的包通常以`.sle11sp4`为后缀。 2. **版本兼容性**: - `zlib-devel-1.3.1`版本较高,而SUSE 11 SP4官方仓库中的`zlib`版本较旧(原始问题中我们提到过1.2.3版本)。 - 高版本的库可能依赖于更新的glibc等基础库,而SUSE 11 SP4的glibc版本较旧(例如glibc-2.11.3),可能无法满足高版本zlib的要求。 3. **直接安装的风险**: - 尝试在SUSE 11 SP4上直接安装为CentOS构建的RPM包可能导致: - 依赖不满足(依赖的库版本在SUSE上不存在或版本过低) - 文件冲突(文件路径可能与SUSE的包管理数据库不一致) - 系统稳定性问题(覆盖系统关键库可能导致其他软件崩溃) ### 验证方法: 1. **查询RPM包信息**(如果已有该RPM文件): ```bash rpm -qp --requires zlib-devel-1.3.1-1.3.x86_64.rpm ``` 查看这个包依赖哪些库,特别注意`libc.so.6`的版本要求(glibc版本)。 2. **检查目标系统环境**: - 查看SUSE 11 SP4的glibc版本: ```bash ldd --version ``` 或者 ```bash rpm -q glibc ``` - 比较目标系统中的glibc版本是否满足包的要求。 ### 实际操作建议: 1. **优先使用SUSE官方源或历史仓库** - 如前所述,SUSE 11 SP4的官方源中有`zlib-devel`(版本1.2.3),这是最安全的选择。 - 下载地址(已在前文提供): ``` https://download-ib.opensuse.org/archive/repositories/devel:/libraries:/c_c++/SLE_11_SP4/x86_64/zlib-devel-1.2.3-147.1.x86_64.rpm ``` 2. **自行编译(推荐)** - 如果确实需要1.3.1版本,建议在SUSE 11 SP4系统上从源码编译安装: ```bash wget http://www.zlib.net/zlib-1.3.1.tar.gz tar -xvf zlib-1.3.1.tar.gz cd zlib-1.3.1 ./configure --prefix=/usr/local/zlib-1.3.1 make sudo make install ``` - 然后设置环境变量(如果需要): ```bash export LD_LIBRARY_PATH=/usr/local/zlib-1.3.1/lib:$LD_LIBRARY_PATH export CPATH=/usr/local/zlib-1.3.1/include:$CPATH ``` 3. **使用alien工具转换(实验性,不推荐)** - 如果必须安装该RPM包,可以尝试用`alien`工具将RPM转换为SUSE兼容的格式: ```bash # 安装alien(需要先添加Packman仓库) sudo zypper install alien # 转换RPM包 sudo alien -r --to-tgz zlib-devel-1.3.1-1.3.x86_64.rpm # 解压tgz并手动放置文件(注意备份原有文件) ``` - 此方法风险很高,仅作为最后手段。 ### 结论: 🚫 **不推荐**直接在SUSE 11 SP4上安装`zlib-devel-1.3.1-1.3.x86_64.rpm`(为CentOS构建的包),主要原因: - 高概率出现依赖问题(特别是glibc版本不匹配) - 可能破坏系统稳定性 - 文件路径可能与SUSE标准不一致 ✅ **推荐方案**: 1. 使用SUSE官方提供的1.2.3版本(安全稳定) 2. 自行编译安装1.3.1版本(可控制安装路径,避免系统污染) --- §§ 相关问题 §§ 1. 如何检查SUSE系统上已安装的zlib版本? 2.SUSE 11 SP4上编译软件时如何指定自定义的zlib路径? 3. 如何处理多个zlib版本共存的问题? 4. 如何为旧版SUSE系统安全地升级基础库(如glibc)? </think> ### 💻 关于在 SUSE 11 SP4 安装 `zlib-devel-1.3.1-1.3.x86_64.rpm` 的兼容性分析 #### ⚠️ **关键兼容性问题** 1. **系统版本不匹配**: - SUSE 11 SP4 发布于 2012 年,内核版本 3.0.x,官方支持已终止 - `zlib-devel-1.3.1` 是 2024 年发布的新版本(EL7 架构),其二进制文件依赖: - Glibc ≥ 2.28(SUSE 11 仅含 Glibc 2.11.3- GCC ≥ 8(SUSE 11 默认 GCC 4.32. **架构标签误导**: - 包名中的 `x86_64` 仅表示 CPU 架构兼容 - RPM 包含的**动态库链接**和**依赖链**与 SUSE 11 不兼容: ```bash # 验证示例(在 CentOS 7 环境) rpm -qpR zlib-devel-1.3.1-1.3.x86_64.rpm # 输出: # rtld(GNU_HASH) # libc.so.6(GLIBC_2.28)(64bit) → SUSE 11 最高仅支持 GLIBC_2.11 ``` 3. **安装风险**: - 强制安装会导致: - 关键系统命令崩溃(如 `ls`, `yum` 依赖旧版 zlib) - 系统启动失败(initramfs 包含 zlib 压缩模块) - 依赖地狱(触发连锁性库冲突) #### ✅ **兼容解决方案** 1. **方案一:使用 SUSE 11 SP4 官方版本** ```bash wget https://download-ib.opensuse.org/archive/repositories/devel:/libraries:/c_c++/SLE_11_SP4/x86_64/zlib-devel-1.2.3-147.1.x86_64.rpm sha256sum zlib-devel-1.2.3-147.1.x86_64.rpm # 验证 bd8e7f5f50c8aba41d3c1f93646d3c8cda1b7dc6d90f8c4250d69c9aad700b6a sudo rpm -Uvh --nodeps zlib-devel-1.2.3-147.1.x86_64.rpm ``` 2. **方案二:源码编译(推荐)** ```bash # 在 SUSE 11 SP4 上执行 wget https://zlib.net/zlib-1.3.1.tar.gz tar -xvf zlib-1.3.1.tar.gz cd zlib-1.3.1 # 静态编译规避依赖 ./configure --static --prefix=/usr/local/zlib-1.3.1 make -j$(nproc) sudo make install # 开发环境配置 export C_INCLUDE_PATH=/usr/local/zlib-1.3.1/include:$C_INCLUDE_PATH export LIBRARY_PATH=/usr/local/zlib-1.3.1/lib:$LIBRARY_PATH ``` 3. **方案三:容器化隔离** ```bash # 使用 Podman/Docker 创建 CentOS 7 容器 podman run -it --rm -v $(pwd):/code centos:7 bash # 容器内安装 zlib-devel-1.3.1 yum install -y https://custom-repo/zlib-devel-1.3.1-1.3.x86_64.rpm ``` #### 📊 兼容性对比矩阵 | 特性 | SUSE 官方包 (1.2.3) | 源码编译 (1.3.1) | 容器方案 | |---------------------|---------------------|-------------------|--------------| | 系统稳定性 | ★★★★★ | ★★★★☆ | ★★★☆☆ | | 版本时效性 | ★★☆☆☆ (2012) | ★★★★★ (2024) | ★★★★★ | | 依赖风险 | 零风险 | 低风险 | 隔离风险 | | 维护复杂度 | 低 | 中 | 高 | #### ❗ 最终建议 **强烈反对**直接在 SUSE 11 SP4 安装 `zlib-devel-1.3.1-1.3.x86_64.rpm`。若必须使用 zlib 1.3.1: 1. 优先选择**源码静态编译方案** 2. 关键生产系统使用**官方 1.2.3 版本** 3. 新应用部署采用**容器化隔离方案** ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵海燕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值