Was(WebSphere)不能正常打印程序日志问题

【was日志配置】
服务器 — 服务器类型 ——webSphere Appliaction server — 选择sever — java和进程管理 — 进程定义 — java虚拟机 ,调整“通用JVM参数”。
例如Log4j日志变量名称为:打印目录为:
则“通用JVM参数设置为”:-Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Dclient.encoding.override=GBK –Dlog4j.path.sinoiaciv23 =/opt/IBM/WebSphere/AppServer/profiles/iaContactSrv/log4j_xxx
注:配置完日志目录后,要在服务器上建立与目录对应的文件夹(mkdir /opt/IBM/WebSphere/AppServer/profiles/iaContactSrv/log4j_xxx),否则,日志会保存在根目录下。

最近在搭建大连运维监控系统的过程中发现,was无法正常打印程序日志。
【解决方法】
1、  检查jvm中的“调试参数”是否正确
2、  检查jvm中的“通用 JVM 参数”是否正确,并且确定已经在服务器中创建了此日志文件目录。
3、  打开was程序安装目录,找到properties文件夹,将commons-logging.properties 拷贝到文件中,然后重启server。

sun.io.MalformedInputException IBM Websphere 中间件异常

sun.io.MalformedInputException  IBM Websphere 中间件异常

此问题为xml配置文件编码问题,一般出现的websphere、weblogic等中间件上。
1、解决方法将xml文件的编码格式,注意是文件,改成GB18030。此外还要将内部编码格式encoding=”GB18030″。
这里说明一下修改方法:
1)、创建一个xml文件,将其文件格式改为GB18030
2)、将原来出问题的编码格式的文件所有内容copy到记事本中,注意是记事本,而不是其他编辑器。
3)、将xml中编码格式改为encoding=”GB18030″

2、如果上边的第一种方法解决不了,我们可以将xml配置文件里的所有中文字符删掉,再试试。

3、有的人认为是ibm io的问题,他们是这样解决问题的。
这个问题产生的原因是IBM在JDK 1.4版本中为了追求对io通道的高效率改变了JDK 1.3中对io通道中异常处理的策略。
IBM JDK 1.4中对于io通道的异常处理更加严格,因此系统中会报上面的错误。
解决这一问题的办法是不使用IBM JDK 1.4中默认的io通道,而使用nio通道。具体的做法如下:
1)、打开管理控制台,找到并选择运行这个JSP的应用服务器
2)、依次选择进程定义,java虚拟机,一般JVM自变量
3)、添加-Dibm.stream.nio=true
4)、确定,保存
5)、重新启动该服务器

 

参考文档

http://blog.csdn.net/xiangnideshen/article/details/7469400
http://www.cnblogs.com/keer/archive/2007/07/11/814225.html