linux下的Resin自启动问题

本文介绍如何配置Resin 2.1.17作为服务,并解决了页面显示中文乱码的问题,通过设置正确的编码格式实现了日期格式的正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们使用的是resin-2.1.17

首先按照bin/httpd.sh里的说明将resin配置为服务
[code]# To install, you'll need to configure JAVA_HOME and RESIN_HOME and
# copy httpd.sh to /etc/rc.d/init.d as resin. Then
# use "unix# /sbin/chkconfig resin on"
cp httpd.sh /etc/rc.d/init.d/resin
/sbin/chkconfig resin on[/code]

配置JAVA_HOME 和 RESIN_HOME
[code]JAVA_HOME=/opt/j2sdk1.4.2_10
export JAVA_HOME

RESIN_HOME=/opt/resin-2.1.17
export RESIN_HOME
[/code]
自动启动的时候必须把变量export进来

修改
[code]bin=`dirname $script`[/code]


[code]bin=$RESIN_HOME/bin[/code]

理论上这样应该已经能作为服务启动了
事实上也确实启动了
但是发现所有使用了类似
[code]<fmt:formatDate value='${rptDate}' type='date'/>[/code]

的jstl表达式的地方日期格式都是英文的,而不是期望中的yyyy-MM-dd的格式

一开始以为是系统重新启动默认使用的自带的jdk的问题
于是将系统默认jdk设置成/opt/j2sdk1.4.2_10
结果问题还是一样
这时候可能是某个同事操作cms系统的时候重建了页面
首页的中文全变成了??
这样就很明显是jdk的编码问题了
google之

在最末行启动参数加上强制指定编码,即修改为
[code]exec $perl $bin/wrapper.pl -chdir -name "$name" -class "$class" -Dclient.encoding.override=GBK -Dfile.encodin
g=GBK -Duser.language=zh -Duser.region=CN -Djava.awt.headless=true $args $*[/code]

其中“ -Djava.awt.headless=true”是为了在linux下jfreechart的图像能正常显示
问题解决

以上所做的修改都是针对httpd.sh
别忘了改完重新copy一份到/etc/rc.d/init.d

造成这个问题的原因可能是因为服务加载的顺序问题
因为jdk的默认编码设置是跟系统设置一样的

这件事情教育我们要使用
[code]<fmt:formatDate value='${rptDate}' pattern='yyyy-MM-dd'/>[/code]

补充:
一些地方还是出现乱码
发现数据中心的linux没有设置LC_ALL
修改[code]/etc/sysconfig/i18n
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
LC_ALL="zh_CN.GB18030"
SUPPORTED="en_US.UTF-8:en_US:en:zh_CN.GB18030:zh_CN:zh:zh_TW.big5:zh_TW:zh:ja_JP.UTF-8:ja_JP:ja:ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
export LC_ALL[/code]

当然编码具体情况具体分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值