MalformedInputException


websphere 服务器发出的异常:

sun.io.MalformedInputException
        at sun.io.ByteToCharGB18030.convert(ByteToCharGB18030.java:178)
        at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:247)
        at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:297)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
        at java.io.InputStreamReader.read(InputStreamReader.java:167)
        at java.io.BufferedReader.fill(BufferedReader.java:136)
        at java.io.BufferedReader.readLine(BufferedReader.java:299)
        at java.io.BufferedReader.readLine(BufferedReader.java:362)
        at com.xgll.transfer.request.RequestInterface.doFilter(RequestInterface.java:194)
        at com.xgll.transfer.request.RequestInterface.doRequest(RequestInterface.java:136)
        at com.xgll.transfer.request.RequestInterface.run(RequestInterface.java:98)
        at java.lang.Thread.run(Thread.java:536) 

这个错误的原因:

        由于sun.io.ByteToCharGB18030.convert(ByteToCharGB18030.java)在 websphere 平台读取文件时,文件内容含有非中文字符(例如日文等),会报此错误。这个问题产生的原因是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.重新启动该服务器 我试过,ok了。

 

说明:以上配置问题解决,但本人出现了另一个错误,所有的框架页提示500 error 8192错误,后来发现是没有打补丁。

小窍门:wbsphere的配置,可以在配置文件中直接修改,例如本话题的jvm参数配置,在IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\liangwgNode01Cell\nodes\liangwgNode01\servers\server.xml 文件中。

你可能感兴趣的:(Java)