linux下的Resin自启动问题

我们使用的是resin-2.1.17

首先按照bin/httpd.sh里的说明将resin配置为服务
# 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


配置JAVA_HOME 和 RESIN_HOME
JAVA_HOME=/opt/j2sdk1.4.2_10
export JAVA_HOME
 
RESIN_HOME=/opt/resin-2.1.17
export RESIN_HOME

自动启动的时候必须把变量export进来

修改
bin=`dirname $script`



bin=$RESIN_HOME/bin


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


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

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

在最末行启动参数加上强制指定编码,即修改为
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 $*


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

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

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

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


补充:
一些地方还是出现乱码
发现数据中心的linux没有设置LC_ALL
修改
/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


当然编码具体情况具体分析

你可能感兴趣的:(jdk,linux,cms,jfreechart,perl)