Linux下Tomcat控制台输出及日志中文乱码问题的解决
刚写了个定时器,调用网上流传的飞信API,实现每天每周的固定时间给特定的手机号上发短信提醒的功能。按照网上资料,使用的Servlet监听器+Timer类。
刚开始完全照搬人家的例子,倒也正常。后来查API时看到到Timer有个方法:
"void schedule(TimerTask task, Date time) 安排在指定的时间执行指定的任务。"
不禁大喜,觉得正合这个场景么,于是没仔细想就改写了代码。不过写到一半突然发现这个定时器方法只能执行一次啊,那怎么才能每天都重复执行,看来这个思路不对,还得用:
"void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。"才行。每隔一分钟执行一次Task,其实也就是获得当前时间与设定的时间对比,若相同则执行任务方法。
这次算是没什么问题了,于是放到服务器上想测试下,不曾想却遭遇了乱码问题,Linux主机上的tomcat控制台输出的中文都是乱码,日志文件中也是。网上翻了半天资料,发现大多讲的不详细,我等菜鸟实在不知如何操作。
"因为每一个应用都会启动一个Java进程,启动方法就是 java $OPTS com.xxx.xxx.xxx
其中变量$OPTS就是我们要设置的JVM的启动参数。在这里设置JVM的字符集。设置如下:
-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh "
先是找到如上资料,说要改JVM启动参数里的编码设置,可是我不知道在哪里改,打开catalina.sh、startup.sh等几个文件,里面的脚本代码看得一头雾水,实在找不到配置项在何处,晕,在这里到底是在哪里啊。
后来看到个文章说tomcat经常会发生内存溢出,于是修改catalina.bat,添加如下:
- CATALINA_OPTS="$CATALINA_OPTS -server -Xms256m -Xmx1024m -Xincgc"
- echo "Using CATALINA_OPTS: $CATALINA_OPTS"
于是我若有所悟,比葫芦画瓢的套用了下,别说,嘿!居然还真是那么回事。
更多推荐
所有评论(0)