linux下的Resin自启动问题

我们使用的是resin-2.1.17

首先按照bin/httpd.sh里的说明将resin配置为服务

  1. # To install, you'll need to configure JAVA_HOME and RESIN_HOME and
  2. # copy httpd.sh to /etc/rc.d/init.d as resin.  Then
  3. # use "unix# /sbin/chkconfig resin on"
  4. cp httpd.sh /etc/rc.d/init.d/resin
  5. /sbin/chkconfig resin on

配置JAVA_HOME 和 RESIN_HOME

  1. JAVA_HOME=/opt/j2sdk1.4.2_10
  2. export JAVA_HOME
  3.  
  4. RESIN_HOME=/opt/resin-2.1.17
  5. export RESIN_HOME

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

修改

  1. bin=`dirname $script`

  1. bin=$RESIN_HOME/bin

理论上这样应该已经能作为服务启动了
事实上也确实启动了
但是发现所有使用了类似

  1. <fmt:formatDate value='${rptDate}' type='date'/>

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

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

在最末行启动参数加上强制指定编码,即修改为

  1. exec $perl $bin/wrapper.pl -chdir -name "$name" -class "$class" -Dclient.encoding.override=GBK -Dfile.encodin
  2. 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的默认编码设置是跟系统设置一样的

这件事情教育我们要使用

  1. <fmt:formatDate value='${rptDate}' pattern='yyyy-MM-dd'/>

补充:
一些地方还是出现乱码
发现数据中心的linux没有设置LC_ALL
修改/etc/sysconfig/i18n

  1. LANG="zh_CN.GB18030"
  2. LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
  3. LC_ALL="zh_CN.GB18030"
  4. 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"
  5. SYSFONT="lat0-sun16"
  6. SYSFONTACM="8859-15"
  7. export LC_ALL

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

17fav 收藏本文
标签:, , ,

相关日志 随机文章

Comments

Leave a Reply




请输入验证码

Use "<coolcode></coolcode>" to publish your code.

Line breaks and paragraphs are automatically converted.

Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.

京ICP备05059555号

收藏 & 分享

Powered by 17fav.com