• 关于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的编码问题。

    有不懂的,或者更好的见解可以随时交流!每天都会看的。
  • 相关阅读:
    C#面向对象的基本原则
    EXTJS学习笔记:类似于Window的登录窗体
    c# 类似于QQ表情弹出框功能的二种实现方法
    EXTJS学习笔记:grid之分组实现groupingview
    RibbonBar屏蔽右键
    webservice安全性浅谈
    js生成二维码以及插入图片
    c++之const解惑
    最短路径连接表形式
    深入理解c++之动态内存和指针
  • 原文地址:https://www.cnblogs.com/java-xz/p/7068490.html
Copyright © 2020-2023  润新知