zoukankan      html  css  js  c++  java
  • 关于resin的illegal utf8 encoding at (190)解决方式

    最近在项目开发中,出现了编码异常,内容如下:
    - illegal utf8 encoding at (190)
    com.caucho.jsp.JspParseException: illegal utf8 encoding at (190)
    at com.caucho.jsp.JspCompilerInstance.compile(JspCompilerInstance.java:434)
    at com.caucho.jsp.JspManager.compile(JspManager.java:242)
    at com.caucho.jsp.JspManager.createPage(JspManager.java:171)
    从出错的信息,感觉是编码出现问题。所以查看文件的编码,分为两个部分:
    第一个就是jsp的声明部分:<%@ page language="java" pageEncoding="UTF-8"%>
    第二个就是在eclipse中查看文件的属性,Text file encoding 为 default(UFT-8)
    综上所述,没有发现错误现象。个人感觉:虽然异常字面上理解是编码异常的问题,其实并不一定真的是编码问题,因为我发现一个奇怪的现象:
    第一次打开页面的时候会出现这种异常,但是重新刷新页面,反而没有问题。
    所以,结合我以前读resin源码的经验来分析,我觉得是内存的字节数据出现了混乱,导致了编码问题。极有可能是我的机子内存不够,导致jsp编译的过程中,没有完全载入jsp文件,导致jsp文件编译过程中出现脏数据,从而出现编码异常问题。带着这样的思路,我去查看resin的配置文件,在resin配置文件中可以调节内存的地方有两处:
    一:config文件的:<jvm-arg>-Xmx256m</jvm-arg>,可以调大一点。
    二:app-default.xml文件中对jsp页面编译的处理配置如下所示:
    <servlet servlet-name="resin-jsp" servlet-class="com.caucho.jsp.JspServlet">
        <init>
          <load-tld-on-init>false</load-tld-on-init>
          <page-cache-max>1024</page-cache-max>
        </init>
        <load-on-startup/>
    </servlet>
    通过调节上面jvm的大小或者页面的缓存大小,从而控制内存,最终解决了resin的编码问题。

    有不懂的,或者更好的见解可以随时交流!每天都会看的。
  • 相关阅读:
    如何免费在 arm 官网上下载合适的手册
    ARM Cortex-A系列处理器性能分类比较
    USB OTG有关协议
    fseek在 fopen 带有'a'模式下不起作用
    Zynq 7000的3种IO
    多核处理器与MP架构
    Vim常用插件命令手册
    剑指 Offer 07
    Leetcode 94
    剑指offer 27
  • 原文地址:https://www.cnblogs.com/java-xz/p/7068490.html
Copyright © 2011-2022 走看看