当你看到此文的时候,相信你正在费尽九牛二虎之力想把原本部署在windows操作系统tomcat下的项目部署到ibm小型机aix操作系统的tomcat下,又或者正在解析某个xml文件,如果是的话,请继续往下看,保证你不费吹灰之力就能把你的问题解决。
出现此异常的原因是IBM在JDK 1.4版本中为了追求对io通道的高效率改变了JDK 1.3中对io通道中异常处理的策略。IBM JDK 1.4中对于io通道的异常处理更加严格,因此系统中会报上面的错误。看到这里你可能在想,可是我用的是1.5版本哦!其实1.4版本之后的版本都沿用了该策略。
解决这一问题的办法是不使用IBM JDK 1.4中默认的io通道,而使用nio通道,而要实现这一点只需对tomcat的catalina.sh文件(该文件在bin目录下)作少少改动就可以达到目的,增加JAVA_OPTS="$JAVA_OPTS -Dibm.stream.nio=true"定义,具体如下:
# Set juli LogManager if it is present
if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar ]; then
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
JAVA_OPTS="$JAVA_OPTS -Dibm.stream.nio=true"
LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
else
# Bugzilla 45585
LOGGING_CONFIG="-Dnop"
fi
还有另外一种情况会导致这一异常,就是文件编码的问题,多发生在你解析xml文件的时候。问题出现的原因是该xml文件保存的时候包含了BOM头信息(十有八九是因为你使用UE编辑过该文件)。
在这种情况下解铃人还须系铃人,只需要用UE打开这个文件,然后另存为,在格式那里选择UTF-8 - 无BOM,这样就可以了,如果你需要改变的文件很多,可以用程序读取目录下的所有文件,然后把BOM头信息替换成空格就行,或者上网搜索一下批量删除BOM信息的工具。
分享到:
相关推荐
NULL 博文链接:https://jlins.iteye.com/blog/568029
网上找来了相关java文件,改文件包主要用于解决类似找不到sun.io.CharToByteConverter类及相关方法情况,放到对应引用文件目录下编译即可。 PS:java文件编码格式为UTF-8,如果有其它编码格式,自己调整一下就行,我...
ByteToCharConverter,SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.,ByteToCharConverter
最近项目实验发现导入工具程序后项目有错,查看发现sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用,找不到相应的类。 二、原因分析 冲浪后发现JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中...
sun0225SUN.github.io
Java中进行图像I/O(即读图片和写图片,不涉及到复杂图像处理)有三个方法: Java Image I/O API,支持常见图片,从Java 2 version 1.4.0开始就内置了。 主页:...
sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及...
sun.misc.BASE64Decoder.jar 绿色版 官方版本自己打包好的,可以直接调用,欢迎下载
import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; 报错: Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library C:\Java\jre1.6.0_07\lib\rt....
jdbc-odbc驱动包,提示找不到驱动,java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver,解决办法!因为jdk1.8环境不支持sun.jdbc.odbc.JdbcOdbcDriver驱动,所以这里为特别为您提供一个解决JDK1.8不...
sun.misc.BASE64Encoder找不到jar包的解决方法? 在MyEclipse中编写Java代码时,用到了BASE64Decoder,import sun.misc.BASE64Decoder;可是Eclipse提示: Access restriction: The type BASE64Decoder is not ...
com.sun.jna.examples
import com.sun.pdfview.FullScreenWindow;import com.sun.pdfview.OutlineNode;import com.sun.pdfview.PDFDestination;import com.sun.pdfview.PDFFile;import com.sun.pdfview.PDFObject;import ...
sun.security.provider不存在
安装了JDK 9以上版本,发现sun.misc.Base64Encoder和sun.misc.Base64Decoder无法使用。找不到导入的包此时将下面的包导入libs中就可以了
sun.misc.BASE64Encoder源码及jar包
sun.misc.BASE64Decoder.jar sun.misc.BASE64Decoder.jar sun.misc.BASE64Decoder.jar sun.misc.BASE64Decoder.jar
jdbc-odbc驱动包,提示找不到驱动,java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver, 原因:从jdk从1.8开始,删除了jdbc-odbc桥,所以odbc的驱动是用不了的 解决方法:这里为提供一个解决JDK1.8不...
jdbc-odbc驱动包,提示找不到驱动,java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver,解决办法!因为jdk1.8环境不支持sun.jdbc.odbc.JdbcOdbcDriver驱动,所以这里为特别为您提供一个解决JDK1.8不...